Mojave’s Legacy Software is doubly wrong

If you’ve been looking in the Legacy Software item in System Information, you’ll be aware that its list of 32-bit apps and other components is woefully incomplete. Recognising this high false negative rate, how does it fare at confirming when an app is updated and becomes fully 64-bit? After all, that’s surely its whole purpose.

The short answer is that Legacy Software is just as unreliable at detecting 64-bit updates: when an app has been updated to be fully 64-bit, it may not record that at all. It thus also has a high false positive rate, making it unfit for purpose. This is because of a flaw in its design.

This all became clear when I recently installed the upgrade to Mathematica 12, which has just been released. For the Mac user, one of its most important features is that it has a new Cocoa front end, which makes it fully 64-bit. At least, that is what Wolfram claims. But it’s not what Legacy Software says.


Here’s Legacy Software’s opinion on Mathematica after I had run the new version a couple of times: it’s still in the blacklist as being 32-bit, together with a couple of its components. One fine detail I’d draw attention to here is that, according to the information shown, I hadn’t run the new version which I had recently installed: the Last Used times given are those for its previous version.

So I had to resort to my own free ArchiChect and 32-bitCheck (from Downloads above) to examine this upgrade properly.


Surprise, surprise: there’s no trace of any 32-bit software in it. Wolfram’s claim is correct. Not only that, but System Information now can’t even agree with itself. Here’s an excerpt from the listing in its Applications section.


So why doesn’t Legacy Software show the correct information?

It’s down to design. It makes the assumption that any updated app would have a quarantine flag attached, leading to a first-run Gatekeeper check, in which SPLegacySoftwareReporter would update its information about that app and take it off the blacklist. Wolfram, like many commercial software vendors including Microsoft and Adobe, uses a custom software installer which itself triggers a first-run check, but then downloads the update using a method which doesn’t attach a quarantine flag.

When you first run the updated version, as with so many major app updates, no Gatekeeper first run dialog appears, and as far as Legacy Software is concerned, nothing has changed.

There doesn’t appear to be an easy way around this, other than SPLegacySoftwareReporter checking every app on opening, every time. Not only wasn’t Legacy Software designed for users, but it wasn’t designed for software updaters either. Ingenious, but utterly unreliable.