InterMapper Compatibility Note for Mac OS X 10.5 - Leopard

Dartware certifies that InterMapper 4.6.5 is compatible with Leopard. There are two problems with earlier versions of InterMapper on Leopard: Time Machine and the Leopard firewall.

Compatibility Note: Time Machine

Within your InterMapper Settings folder, the InterMapper Logs, Chart Data, and Temporary folders contain large, frequently updated files that will quickly fill up your backup disk. Starting with InterMapper 4.6.5, these folders in your InterMapper Settings folder have been automatically marked as “off-limits” for Time Machine backups:

  • InterMapper Logs
  • Chart Data
  • Temporary

Do not rely on Time Machine to back up these folders on Leopard.

If you are running an earlier version (pre-4.6.5) of InterMapper on Leopard with Time Machine enabled, Dartware recommends that you manually exclude these three folders from Time Machine backups. Installing 4.6.5 fixes this automatically.

Compatibility Note: Leopard Firewall

If the Leopard firewall is enabled, you must add exceptions for intermapperd and intermapperauthd. Without these exceptions in the Leopard firewall, intermapperd will be unable to check the status of devices using UDP or ICMP-based probes; instead, all devices will be reported as unreachable and therefore down.

Earlier versions of intermapperd (pre-4.6.5) are not compatible with the Leopard firewall. When added as a firewall exception, intermapperd will run once then cease to function.

Installing 4.6.5 installs a new binary, replacing a damaged one, but does not automatically add a firewall exception. To do this, open the Security system preference and click on the Firewall tab. Click the “+” button to bring up the Open... dialog and type cmd-shift-G to show the “Go to the folder:” sheet. Type /usr/local/bin and press return. You should see the contents of the /usr/local/bin directory. Add both intermapperd and intermapperauthd from this directory to the list of firewall exceptions and set their status to “Allow incoming connections”.

Background: Leopard's Application Layer Firewall & Ad-Hoc Code-Signing

Leopard includes a new application layer firewall that controls access to the network based on the program that is running instead of arcane protocol numbers. The Leopard Firewall settings lets you specify individual programs as “exceptions” that can access the network.

For InterMapper to run on a Leopard system with the firewall enabled, two of its executable files must be added as exceptions to the firewall rules: intermapperd and intermapperauthd. Without these exceptions, InterMapper cannot monitor the network.

When you add an exception to the firewall, Leopard uses a program's code-signature to authenticate it. If the program's code was not signed by its developer, Leopard temporarily signs the program for you. This process is called ad-hoc code-signing, and it's also used by other parts of the OS that need to identify programs with particular privileges (e.g. Parental Controls).

Unfortunately, the ad-hoc code-signing process on Leopard irretrievably damages the intermapperd binary. When it rewrites the executable to add the code signature, it chops off about 700 Kbytes from the original binary. From that point on, intermapperd will refuse to run.

A symptom of a damaged binary is that InterMapper will run fine when you first install it, but it won't start up again if you try to restart it or simply reboot the computer. You may see a complaint in the system.log that says, “Executable has no resource section: /usr/ local/bin/intermapperd”. There is nothing you can do at this point except re-install InterMapper.

Starting with version 4.6.5, Dartware now signs the intermapperd binary. This fix prevents Leopard from applying an ad-hoc code signature and breaking intermapperd.