Closed Bug 1648832 Opened 4 years ago Closed 4 years ago

Make updater/Balrog support AArch64 macOS

Categories

(Release Engineering :: Release Automation: Updates, enhancement)

ARM64
macOS
enhancement

Tracking

(firefox84 fixed)

RESOLVED FIXED
Tracking Status
firefox84 --- fixed

People

(Reporter: gcp, Assigned: bhearsum)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

No description provided.

Previous comments:

With fat binaries, I guess nothing would be required here?

I think fat binaries implies the packaging doesn't need to be changed, but I think there are various updater/balrog/balrog URL bits that need to know about ARM64 OS X...at least there were for ARM64 Windows.

Previous comments:

"Universal 2", whatever it is, looks very much like the fat binaries from the previous transitions. file knows about them, and so does lipo.

(In reply to Gian-Carlo Pascutto [:gcp] from comment #1)

Previous comments:

With fat binaries, I guess nothing would be required here?

I think fat binaries implies the packaging doesn't need to be changed, but I think there are various updater/balrog/balrog URL bits that need to know about ARM64 OS X...at least there were for ARM64 Windows.

If aarch64 is a separate binary, we can add a new entry to that list instead (like we've done for Windows).

I think we'll need some minor changes to Balrog submission no matter what. If we have fat binaries (I'm assuming this means one binary for all hardware types), we'll need to add that information to the build targets listed in https://github.com/mozilla-releng/scriptworker-scripts/blob/master/balrogscript/src/balrogscript/submitter/release.py#L66. We may need to fork that entry to ride the trains, although I think it's probably safe to add them even for branches/versions that don't support aarch64.

build target encodes information about both the running and target architectures of binaries. Eg: Darwin_x86_64-gcc3-u-i386-x86_64 is a 32+64-bit build running on 64-bit hardware+OS. I imagine we'll end up with something like Darwin_aarch64-gcc3-u-i386-x86_64-aarch64 (or without the i386 if we've already stopped building for that and I haven't realized it).

Balrog itself should be entirely agnostic to this, as these things are just data that we put in the system that matches up with what the client sends.

Adding Molly for the client side perspective.

Flags: needinfo?(mhowell)

As far as I know right now, on the client we'd just have to make sure the right architecture makes it into the right place in the Balrog request, which I think should happen for us because on Mac we're directly sending the value of TARGET_XPCOM_ABI, which looks like it would have what we need. On Windows there was more installer work to do for AArch64, but that won't be an issue on Mac.

Flags: needinfo?(mhowell)

Just to be clear: this bug is waiting until we know what buildTarget (or targets) the client will send. Once we know that, we have a few small things that need updating.

Assignee: nobody → bhearsum

We're going to go with Darwin_aarch64-gcc3 for now.

(Originally I was pushing for something like Darwin_aarch64-u-x86_64-aarch64 - but glandium dug up https://bugzilla.mozilla.org/show_bug.cgi?id=552924 which confirmed the reason we use to have such build targets was to allow distinguishing between the ppc+i386 universal builds, and the i386+x86_64 universal builds. That's not a concern now, so there's no reason to complicate things.)

To get things going, we need to update our Balrog submission jobs to add this new alias, which is happening in https://github.com/mozilla-releng/scriptworker-scripts/pull/294. I also had to update the Firefox-mozilla-central-nightly-latest release by hand, because automation doesn't manage its alias'.

There's also a few in-tree things to update to make release promotion fully work. This is happening in https://phabricator.services.mozilla.com/D97028

Nightly updates should work already, but we can confirm that with the next set of nightlies.

Pushed by bhearsum@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1e96cf75277b
Make updater/Balrog support AArch64 macOS. r=aki
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: