Thursday, November 19, 2020

Rosetta 2 Not Preinstalled

Rich Trouton:

With Apple now officially selling Apple Silicon Macs, there’s a design decision which Apple made with macOS Big Sur that may affect various Mac environments:

At this time, macOS Big Sur does not install Rosetta 2 by default on Apple Silicon Macs.

I don’t understand what the benefit of this is. Big Sur already includes the Intel versions of all the system frameworks. Why not include the much smaller Rosetta translator, too? Just to shame them?

I think with the Intel transition, Rosetta was preinstalled until Snow Leopard.

Previously:

Update (2020-12-08): Xcode 12.3 RC Release Notes (via Jeff Johnson):

The first time you launch Xcode on a Mac with Apple silicon without Rosetta installed, Xcode prompts you to install Rosetta. The prompt prevents any interaction, and blocks Xcode from launching. (70853975) (FB8848625)

Workaround: Launch an x86_64 process to trigger the system’s Rosetta prompt.

Armin Briegel:

When a user opens an application that requires Rosetta for the first time, before Rosetta is installed, the system prompts to install. The same thing can happen with an installer package. The system might prompt to install Rosetta before a certain package is installed. However, not all packages trigger the dialog. I was curious what is required in the package to trigger or to avoid the prompt.

[…]

The confusing part here is that both component pkgs and distribution pkgs have the same file extension. They are hard to distinguish even from the command line. To tell them apart, you can expand a pkg with the pkgutil command and look at the files in the expanded folder. Component pkgs have (among other files) a PackageInfo file and distribution pkgs have a Distribution file[…]

[…]

When a distribution pkg has this attribute and it contains a value of arm64 then the installation process on an Apple silicon Mac will not check if Rosetta is installed. When arm64 is missing from the hostArchitectures, or the attribute or tag are missing entirely, the installation process on an Apple silicon Mac will assume the pkg requires Rosetta and prompt to install when necessary.

Be careful using productbuild on Catalina.

Update (2021-03-14): Joe Rossignol:

Installing the upcoming macOS 11.3 software update on an M1 Mac may result in Rosetta 2 being removed in one or more regions around the world.

[…]

It’s unclear why macOS 11.3 might remove Rosetta 2 on M1 Macs in some regions, but perhaps there are legal or copyright reasons involved.

Tricertops:

M1 Pro Tip: Duplicate Terminal​.app, change its App ID in Info.plist, change icon, enable Run using Rosetta.

17 Comments RSS · Twitter

Theory: Rosetta 2 wasn't actually ready on 11.0.0 (the build on the M1 Macs), so to bridge the gap, they decided to fetch it later.

Still, that seems like a needlessly poor user experience. Especially, of course, when you add poor window layering to the mix.

Theory: to collect analytics.

Theory: Rosetta 2 is (still) licensed from another company and Apple saves money if users don’t install it. Recall that Rosetta 1 was licensed from Transitive Technologies, which was bought by IBM. Even if all the code is now owned by Apple it may still be patent encumbered.

@Bob: Bingo.

Install on-demand is trivial over modern broadband connections, and they can gauge just how much use—and thus how quickly it can be deprecated and dropped—it actually gets.

Honestly, I’ve been saying for years that they should be pushing Terminal and much of the BSD userland out of the core OS and into the AppStore, same as they already do for the compiler toolchain. Especially with their focus now on end-user security; and nothing in the world is more secure than code which never gets installed for the 99% of users that will never need it.

And even for the 1% that do… I mean, when’s the last time a macOS user ever needed to touch groff? Unix was an absolute trash house even before Mac OS X brought all its own crap as well. A good hearty skip-filling reinvigorates the product as much as the soul.

Needless to say, such a proposition would have the Nerdocracy throwing conniptions, but this works both ways. If uptake if that low then damn right Apple should dump it entirely and invest its resources more productively elsewhere. OTOH, if the uptake is higher then that’s the evidence to make the case that more roadmapping and investment is required.

Hey I’ve watched Mac Automation slowly wither and rot these last 20 years because no-one at Apple in any position of influence ever felt motivated either to put a fast clear bullet in it or light a rocket under the lackadaisical team responsible for it. And so it enjoyed the worst in the middle instead: absolutely bugger all. Slow death by inaction is just a coward’s way out.

Yes, Rosetta was preinstalled at the beginning. Then it was only available through download (Snow Leopard). They dropped it with Lion, but they also broke it with a 10.6 "security update". And I think there was also a time when the only place it was still available for download was the Japanese Apple website

My guess is that Apple is trying to put pressure on software developers. Apple wants to push native support to reduce its testing cost. Once the transition is done, Apple will want to dump the x86 versions of MacOS since testing on 2 platforms is more work.

But the very same thing is true for 3rd party developers who now have to test on 2 platforms. For many of them, 80% of a fast CPU is plenty fast enough. Most customers will still be using x86. So it is in their interest not to migrate. The "well you'll lose new customers because of this scary alert" stick is to prod people into playing ball.

Not everyone will be able to transition quickly. If one uses a non-Apple language (e.g. Haskell) or non-Apple libraries (BLAS, etc) one will be at a disadvantage due to this choice. Apps that glue Apple libraries together written in Apple languages will have the easiest transition... which is very convenient for Apple. Hardware makers usually want to commoditize their complement (software) and software makers usually want to commoditize their complement (hardware)... and one way for a hardware manufacturer to do that is to make one's platform incompatible with others'.

Rosetta was always install on demand, because Marketing will always take every opportunity to highlight old and broken versus the new hotness. Jon Andrews, VP of CoreOS originally worked at Transitive, which was long since acquired and dissolved by IBM. Quite a few former Transitive employees work for Apple. There is no reason to believe Rosetta 2 wasn't written in house. The only thing they reused was the trademark.

As for analytics, Apple already has those in spades for fleet-wide app usage. There is no meaningful value in tracking downloads. it's a completely redundant data point.

Apple already gets analytics for everything you first-launch. Shaming/scaring to shorten the transition makes more sense. The licensing idea is also a good one.

@has: I just used groff yesterday. And will again today. And have for much of the last few weeks. And then, before that, I've been using it for a few personal projects as well.

Needless to say I cannot disagree more with @has.

I never thought that making the compiler toolchain optional was a good idea: XCode is bloated. If it were shipped on every Mac, Apple would be forced to clean up their act. Secondly, having to download a thing is a barrier to entry to teaching programming, and to me the definition of a computer is that it is something that can be programmed. I wonder how many children have been told by their technologically illiterate parents not to F up the family computer by installing "hacking tools" like Xcode.

Furthermore many tasks are faster in the Terminal. By making it "optional", Apple would be going further down the path of dumbing down computers. As it is, they cater too much to ignoramuses, thereby creating a "nerdocracy". "Oh poor little Diddums, let us take that dangerous program away from you. You might cut yourself. Trust us, we know what's best for you." As it is, Apple goes too far in that direction, calling its not-very-competent tech-support team "geniuses".

We're going the wrong way if we want to be a technologically competent nation in a world where countries like China actually educate their population. People who write javascript think they're on the cutting edge of high-tech. In the US, a few universities teach some classes about how to develop/manufacture computer chips. China just created an entire university that only teaches that one subject. Applied Micro moved their research labs to Xian. M1 & Amd's Zen are manufactured in Taiwan. Intel optimises a lot of its software in Shanghai, not in the US. We're losing, if we haven't already lost it, our edge.

@has: The current situation is that anyone who does anything remotely technical has to install all of Xcode (10-20GB), including all the iOS/watchOS/tvOS SDKs that they will never touch. That's terrible.

As for lacking maintenance, that has nothing to do with whether it's a dev tool or not. The command line tools still work, and just as well as they always have. Several of Apple's "native" Mac apps (especially those in the Utilities folder) are complete crap today, due to lack of maintenance.

There are much better ways to collect meaningful analytics and exert pressure. They know which apps in the Mac App Store have been ported, and they surely keep tabs on all the major non-App Store apps, too. It's much more Apple-like to control supply than demand. They stopped supporting Snow Leopard when its successors were widely available, not when people stopped using Snow Leopard.

The funny thing is, I *think* it _did_ came preinstalled on my M1 Mini! When booting up first I did use a few x86 apps (e.g. 5 GUIs and Slack and others) and don't remember seeing that famous prompt.

Now here it comes: A while later I got the 11.0.1 software update prompt. This I did, with the associated reboot. When I logged in again, with all the apps I hard started before opening up, _then_ I would receive a lot of Rosetta download prompts (e.g. Xcode got stuck so much I had to reboot again, it just wouldn't leave the prompt).

But to be honest: I'm not 100% positive, just like 80%. Maybe there was that prompt on 11.0.0 and I just don't remember clicking it. /shrugs

@Old Unix Geek: I know nerds all think the universe revolves around then but, newsflash: it is not all about you. You are maybe 1% of the computer-using population.

Every single user who has a BSD userland and shell on their machine who never uses it is taking on a non-zero cost+risk for zero benefit. That’s not empowering them, that’s punishing them, just to make you feel powerful.

The only safe, free code is the code that you never have installed in the first place. Everything else has a cost, and a cost-vs-benefit analysis that determines if it’s worth it or not for them. Not you, them.

I really cut my coding teeth on Python 2.x, proud purveyor of “Batteries Included”. An it was an Absolute Junkhouse. Maybe that kitchen-sinkery made more sense back in its early days when there was barely a WWW to distribute it over. But we’re long past that primitivist stage now, or should be. There’s a reason the BDFL &co stripped a whole pile of crap out of Py3, and a reason they had to leave a whole pile of crap still in there. And all that crap really did was look impressive from the outside while it rotted from the inside. What “Batteries Included” ultimately did was kill the platform’s forward evolution. It was a set of boat anchors dragging on the whole.

So how much of Apple’s BSD userland is fully up-to-date and actively maintained, and how much is aging, buggy crap that Apple doesn’t update because it doesn’t have the interest, the resources, acceptable licensing terms, and so on? Are you really telling me that you have more faith in Apple as curators of that platform than the entire distributed global network of independent developers and users who are actually invested in it because they use it themselves?

Well there you go. I’ve always said that nerds are, underneath, martinets and narcissists (and I’m half-nerd-by-birth myself), and I can’t say you’re making a case to the contrary, never mind your case for inflicting your own very-specialness on the whole rest of the world.

Meantime, I will leave you with this:

https://twitter.com/jasonintrator/status/1331278330100936711

Now there’s a story that needs to be told.

@has: Silicon Valley is a very small part of one country, and it has a very specific attitude which differs from other parts of the US. I would agree with you that some of the people over there do seem to project a certain fascist tendency. In my experience, it's rarely from the people who do engineering for the sake of engineering. It's mostly from the people who believe the goal of life is to grab more money than the next guy. Those are also the people who want to deskill everyone else. I don't happen to like them. Despite the name, a lot of silicon development actually occurs in other parts of the US.

Apple has no excuse not to maintain its BSD layer. It is a 2 trillion dollar company. It's not up to volunteers to do it for them. They're already sufficiently parasitical in my book. However, I'm sure you'll get your wish one of these days. The Mac is converging with iOS, to become a full blown consumer device, and I would not be surprised if they were to decide to dump the BSD tools too.

Google defines a nerd as a "foolish or contemptible person who lacks social skills or is boringly studious". It's surprising to me that one of the few (civilian) areas left where the US still has some state of the art technology (CPUs), is ascribed to people who have no social skills or are uncreative. Of course, it's a foolish stereotype.

I always find this put down bizarre. What on earth do you think gives average people in the West the ability to live in more comfort and wealth than most princes 200 years ago? It's science and technology and nothing else. Why on earth would one dismiss the people who made that possible as "only 1% of the people", who are "contemptible", and who "think the world revolves around them"? Instead, given that countries who succeed at technology have raised their populations' well being, and those which failed at it haven't, it seems to me that not only should one want to raise more such people, but also one should want to improve the population's overall technical level.

That's what I want. I actually take seriously the notion that computers are bicycles for the mind, as Steve Jobs said. But we seem to have stopped developing that direction some time ago. Computers are becoming store fronts, TVs, and all sorts of other things that involve as many neurones as watching a wood fire flicker in the hearth. Don't get me wrong, I like sitting in front of a wood stove. But developing software is one thing that requires thought and trains brains. I think it is essential that computers enable people to learn that out of the box. Instead computers are being locked down, to protect content like Netflix' 4K stuff. One thing matters deeply and will affect the evolution of society, the other only affects certain people's profits. We're getting our priorities wrong.

There's a certain generation of people who learned to program as kids. Most of the great engineers I know are in that category, regardless of national origin. I think there's signal to that pattern. Hence my wish for more kids to be exposed to programming at an early age. And if not on widely available computers, where else?

Meantime I'll leave you with this: https://www.youtube.com/watch?v=pW-SOdj4Kkk

Happy Thanksgiving!

I have been using groff (and the other BSD tools) for 40 years. On Macs since System X. I put off buying an iPad because Terminal was not available. Abandoning these tools would be a grave mistake on Apple's part. Robert Marks

I should have said I'm not a geek, but an academic economist. I use the groff tools for writing papers, letters, and even lecture slides, with tables, equations, etc. There is a community of groff users and developers on-line, at https://lists.gnu.org/mailman/listinfo/groff some of them on Macs.

@Dan S is right on the money. Patents.

Regardless of whether Apple wrote the Rosetta 2 code themselves, this space is a patent minefield. On one side, you have Intel and AMD who are still holding onto war chests of unexpired x86 and x86-64 patents and have a vested interest in preventing anyone from doing what Apple just did. On the other side, you have scores of software companies and patent trolls who have patented every aspect of emulation, translation, virtualization, and everything in-between.

On-demand component installs like this are a common approach to reducing patent risk in scenarios like this. For one, it reduces the quantity of infringement to the number of people who did the install. But more importantly, if Apple does get sued for patent infringement and a court grants an injunction, this avoids a catastrophe: suspending the shipment and sale of all M1 Macs. By separating this technology into an on-demand download, Apple can temporarily disable Rosetta 2 downloads without needing to halt hardware sales.

I'm not hugely convinced by patents as a reason. In terms of reducing the quantity of infringement, I can't see it will have a meaningful impact as I think close to 99% of M1 Mac users will currently need Rosetta 2 for _something_, and so have installed it. And related to this, I can't see a situation where Apple disables Rosetta 2 – that would essentially break all new Macs (again, it will be a minuscule percentage of people who can currently run all the software they need without Rosetta on M1). A PR and practical disaster. Not to mention the resulting lawsuits from people claiming (not unreasonably) that they were mis-sold a product.

Leave a Comment