Analysis: Inside Mac OS X 10.4.6
Apple released Mac OS X 10.4.6 for PowerPC (including Mac OS X Server) and Intel machines two weeks ago. This was a big deal for about 36 hours, when Apple announced and released Boot Camp, derailing every other conversation about the Macintosh in the entire world.
While it’s true that Boot Camp needs some of the changes in Mac OS X 10.4.6 to install properly, that’s perhaps the least of the update’s significance. Mac OS X 10.4.6 runs on all Tiger-capable machines; Boot Camp is only an option for certain machines that Apple has sold in the past three months. It’s also the third Tiger revision in as many months, an update speed far beyond Apple’s normal schedule of one security update every four to six weeks and one OS update every quarter or so.
In context, however, the update turnaround speed isn’t that surprising. Mac OS X 10.4.4 appeared in January, not long after Apple released the iMac (Early 2006), its first non-PowerPC machine in over a decade. Mac OS X 10.4.5 followed it in February on the heels of the MacBook Pro. Now, not long after the debut of the Mac mini (Early 2006), we see Mac OS X 10.4.6.
Mac OS X 10.4.6 is the seventh general release of Tiger since it went on sale nearly a year ago. Mac OS X 10.4.6 is available in three versions, each of which may also be had as a “delta” updater that works only on Mac OS X 10.4.5, or as a “combo” update that installs on any released version of Mac OS X 10.4. If you use Software Update on a Mac OS X 10.4.5 system, you may get a “patch” update that contains only the bytes that changed in files from Mac OS X 10.4.5 to 10.4.6, and not complete copies of the new files themselves.
Inside the combo updater
If you have changed any files that the OS supplies, such as messing with frameworks or Apple’s device drivers or Unix control files, change them back before installing the “delta” or “patch” updates. The Installer does not know if you’ve been monkeying around with the system, and may replace just one file out of a group of interdependent files. If you’ve replaced the others with other versions, you may see system havoc up to and including a kernel panic.
Downloading and installing the “combo” updater insulates you against such unwanted side effects, but only to a point. Take, for example, the AppleShare client software that lets you log onto AFP servers and treat them as disks. The code lives in at least three separate places in the /System/Library folder: the AppleShare file system module in Filesystems, and the AppleShare Client and Client Core frameworks in Frameworks.
If you replaced one of these components with an alternate version, and if an OS updater replaced a separate one, you’d be left with a system where three interdependent components were from three different versions of the OS. A “combo” updater would only avoid this if all three components had been updated in any post-10.4 version of Tiger. If one or two of them have not been updated at all, they may not be included in the “combo” updater, so installing it won’t solve the problem.
It’s no accident that we mention AppleShare as this example. There are widespread reports that the AppleShare client updates in Mac OS X 10.4.6 don’t play nicely with Adobe Creative Suite 2. Specifically, Photoshop users who’d installed the Mac OS X 10.4.6 update found that the program would crash just after saving documents to certain kinds of AFP servers (such as ExtremeZ-IP).
According to Group Logic, the problem is a compound issue with Photoshop CS2 and both the AppleShare server and client software in Mac OS X. The client and server have been ignoring AppleShare file comments longer than 128 bytes even when they shouldn’t. In 10.4.6, the client correctly returns comments longer than 128 bytes, even though Apple’s server software (including File Sharing) doesn’t always allow setting them. When Photoshop CS2 gets back a comment longer than 128 bytes, even though it set the comment itself, it crashes.
The “solution” that’s making its way around the Web (in most cases, blatantly stolen from MacFixIt ) is to replace all three AppleShare software components with their equivalent 10.4.5 versions. Some people report that does not solve the problem; others report other problems in saving from Adobe CS2 applications (like InDesign CS2) to AFP servers under 10.4.6.
We typically advise not to play mix-n-match with the operating system, but if you need this functionality in your daily work and this solves the problem, it’s a hard sell to say “don’t do it” in the name of version purity. Just remember to put the Mac OS X 10.4.6 versions of these components back in place before you install the very next Apple update, lest you hose your system even further without knowing why.
The “combo” updater has another place for people upgrading to Mac OS X 10.4.6. We’ve seen reports of applications that run fine under 10.4.5 but crash under 10.4.6 with message to the effect that “vecLib. framework is missing.” Our attempts to pin this down have not succeeded.
MDJ 2006.04.09 contains a detailed account of our attempts; to summarize, we could not make it fail, and we could not explain why it would fail for others. If it fails for you, the anecdotal solution is downloading and installing the appropriate “combo” updater for your system’s processor. We can’t explain why this works because we can’t explain the problem, but this is supposed to fix it. That’s also a bug—there’s not supposed to be any functional difference between a Mac OS X 10.4.5 system after applying a “delta” or “patch” update and any Mac OS X 10.4 system after applying the “combo” update. (The only time Apple recommends using a “combo” update instead of an applicable “delta” update is if you were installing the “delta” update and the system lost power. Don’t try to pick up by installing the “delta” updater again—download and install the “combo” updater.)
Elsewhere in the OS
The beginning of the Mac OS X 10.4.6 release notes reveal a few interesting changes. Let’s take the second one first: “With the Mac OS X 10.4.6 system software update, PowerPC-based Macs will restart twice, instead of once, after the initial installation.” The update includes a new version of the system’s primary dynamic shared library, /usr/lib/libSystem.B.dylib . This is the library that contains the system’s core routines, from the primary C library memory allocation and disposal routines that every application uses, to the built-in support for networking protocols like DNS, and even routines to access the kernel itself. If you have the developer tools installed, the Terminal command
otool -Tv /usr/lib/libSystem.B.dylibwill show you all the routines contained within this dynamo.
In short, it’s very important. Other updates have included new versions of this library, but at this level, there’s no guarantee that live updating would work. You don’t have to quit all applications before installing an OS update because those programs have already linked to the components they need to run. You often can’t launch new programs after an update until you restart, because the new versions you’ve just placed on disk aren’t compatible with the ones already shared in memory by the running programs.
That’s not perfect, but it’s functional. Yet there are some routines in this library that are so central to the system’s own operation that it simply can’t be swapped while programs are running. The Mac OS X 10.4.6 update installer puts the new version of lib- System.B.dylib in a special folder, and installs a startup item for it. Upon restart, the special startup item moves the new version of the library to its rightful place, replacing the old one in the process, deletes its own files, and restarts the system yet again.
The swap happens before you get to the login window, and the system restarts almost immediately afterwards, thus avoiding the potential conflicts. This only happens on PowerPC systems—the Intel update also contains a new version of the same library, but apparently, the changes between it and the old version are not so severe that it must be swapped when nothing is running. (The PowerPC update also contains new versions of the dynamic libraries for CUPS as well as the GCC, Objective-C, C++, and Ruby programming languages; the Intel update omits all of these except the CUPS update.)
Before the restart note, Apple warns that if you use iSync to synchronize contacts or events with your phone, you should make sure you’ve fully synchronized all your devices before installing the Mac OS X 10.4.6 update. That’s because Mac OS X 10.4.6 is the one and only place you can obtain iSync 2.2, a significant overhaul of the program. Even though iTunes now handles synchronizing iCal and Address Book data to iPods, and Tiger requires you to synchronize .Mac via Sync Services and the .Mac preference pane, you still need iSync to synchronize with non-iPod devices like mobile phones and Palm OS handhelds.
Version 2.2 of iSync includes significant changes to the program’s plug-in architecture for handling the myriad devices under its purview. Apple says that you’ll need to uninstall any third-party additions to iSync after your last sync before installing Mac OS X 10.4.6, and that they’ll need to be updated to work with iSync 2.2. However, since the iSync Compatible Devices page lists only two third-party add-ons ( Mark/Space and Reudo ), and since Apple specifically says Reudo’s Sync for Mac “is not affected and does not need to be uninstalled prior to updating,” you’d think that Apple is trying not to say, “you need to uninstall any Mark/Space iSync software.”
As it turns out, that’s not the message: The Missing Sync appears to work just fine with iSync 2.2. However, some smaller iSync-compatible conduits for newer phones do not work with the new version. The good news is that Apple has added support for lots of new phones, including the Nokia N40 series and the Motorola RAZR V3c. The bad news is that Apple’s support for these is not necessarily as complete as some of the third-party plug-ins that no longer work. Older, unofficial instructions for making iSync plug-ins are undergoing significant revisions for the new version.
For example, Brian Toth’s AZR V3c plug-in supported calendar syncing as well as contact syncing, but Apple’s official support is only for contacts. Toth says that’s probably because calendar syncing with the phone is flaky. He provides instructions to force iSync to sync calendar events as well, but warns that syncing “a large number of events may very well kill your phone.” That’s the kind of thing that can ruin your whole morning, so be careful. On the bright side, Nova Media has released a €10 set of media phone plug-ins that are only for iSync 2.2 and later
Readers at The Unofficial Apple Weblog also report that several Sony Ericsson phones, including the K700 and P800, stopped working with iSync 2.2, even though they’re still officially supported. The Nova Media plug-ins don’t include those models. We only tested with a Sony Ericsson T610i and found it to work just as well as under Mac OS X 10.4.5. Apple offers a long list of tips for syncing phones with iSync 2.2, as well as advice for what to do if you can’t get a Bluetooth connection to the phone while trying to sync it.
[ Adapted with permission from the April 16 issue of MWJ, published by MacJournals.com. Copyright 2006, GCSF Incorporated. For a free trial to MWJ, visit www.macjournals.com. ]