Mojave’s Legacy Software isn’t wrong, it’s just a bit slow

One of the puzzles in Mojave since its first release last September has been the Legacy Software listing in System Information. Claimed by Apple to provide details of apps and other software which still run in 32-bit mode, it’s supposed to be an important tool in preparing for the 64-bit-only future.

Yet when you compare the list in Legacy Software with those apps listed in the Applications section as being 32-bit, Legacy Software is next to useless. At least it was when Mojave was first released, but have you checked it more recently?

Shortly after the 10.14.3 update, it occurred to me what was probably going on. As I alluded to in yesterday’s list of bugs in 10.14.3, Mojave’s behaviour and information is changing. In the initial release of Mojave, Legacy Software was almost empty, and the system warnings which you got when running 32-bit apps were very infrequent. At the time, I thought that they only occurred when running a freshly-installed 32-bit app with the quarantine flag set.

legacysoftware10

In 10.14.2 and now 10.14.3, Legacy Software’s list is growing, and I’m seeing more frequent warnings about 32-bit apps which certainly don’t carry a quarantine flag. I suspected that something in Mojave had changed its behaviour, and maybe that the Legacy Software list was being augmented as a result of those warnings.

Thanks to some brilliant detective work by Scott Knight @sdotknight, it’s now clear what has been going on: each time that an app (and similar) is launched, checks are made with macOS SystemPolicy. Included among those now is whether the app is 32-bit. If it is, then SPLegacySoftwareReporter is called to display the warning alert to the user, and to add that item to the database which is listed in Legacy Software.

The reason that Legacy Software was so useless to begin with is that its database was initially unpopulated. I think that in Mojave 10.14, SystemPolicy only reported quarantined 32-bit apps, which resulted in few warning alerts. In the 10.14.2 or 10.14.3 update, this policy appears to have changed, so that this is fired each time that a 32-bit app is run, and the warning dialog displayed only on the first occasion.

My guess is that, as the time for removal of support for 32-bit apps (probably with 10.15 in the autumn/fall) grows nearer, Apple will change this policy again to trigger the warning alert every time that a 32-bit app is run.

If this is correct, it is surprising that, at a time when Apple appears unwilling to provide the engineering resources to fix serious bugs in macOS, or to provide usable documentation, it is prepared to invest in the additional engineering to implement a system which is best described as an escalating nudge.

This escalating nudge also has some significant failings which Apple seems to have glossed over.

First, those who upgraded to Mojave early and took a look at the Legacy Software listing will by now have given it up as useless in their migration to 64-bit. Users don’t keep looking at features which are obviously not telling them the whole truth, in the hope that one day they might come good – in the same way that the Storage bar has finally been fixed in 10.14.3.

Second, Apple has kept all of this secret, even from its developers and journalists, and to a degree this type of escalating nudge depends for success on users not being aware of what is going on. But it also means that we too had abandoned the Legacy Software listing as being of any use, and advised users to rely on other tools instead.

Third, the ultimate success of this scheme depends on users wanting to peck away at upgrading or removing 32-bit apps over the year or so prior to 10.15. Although some might prefer to do that, in many situations it’s better to take stock once or twice, rather than having to keep chasing upgrades or replacements drawn out over several months.

Finally, Apple’s escalating nudge depends completely on users running their old 32-bit software. I don’t know about you, but most of my 32-bit apps are those which I now run very seldom, but which are important when I need their help. They’re old tools which may rest unused for months, even a year or two. As this scheme relies on the 32-bit app being run in order to trigger its checking and reporting, most of those old apps won’t make it into the Legacy Software list before 10.15 is released.

If you like Apple’s scheme, then it’s there in 10.14.3 now. If you want to find out the real size of your problem and identify apps and other software which may never reach the Legacy Software list, there’s always my free 32-bitCheck, available from Downloads above. And I promise you, it does tell you everything it discovers today, and its documentation even explains how it works.