Apple Silicon M1 native support

To provide an update on progress, the latest Local Release v8.3.1 includes Mailpit, the replacement for Mailhog. This contains a native binary for Apple Silicon that we have bundled, removing one of Local’s remaining dependencies on Rosetta 2 for Apple Silicon users. Rosetta 2 is still required, but we’re chipping away.

4 Likes

Any updates on this, now that this year’s WWDC is behind us?

2 Likes

We’re working on bundling a Silicon version of nginx in Local next.

We have tickets for the remaining Intel-specific binaries in Local too. So this is still on our roadmap — thanks for your patience.

6 Likes

Now that a beta of Local 9.1.0 has the native nginx, am I correct that MySQL is the only remaining Intel software within the Apple Silicon build of Local? Any idea how long before an update brings about a native MySQL? I truly believe that those two pieces of software (nginx and MySQL inside Local) may be the only ones relying on Rosetta 2 on my Mac, so am kinda eager (despite the lack of detriment that they’ve been) to get both updated.

2 Likes

…am I correct that MySQL is the only remaining Intel software within the Apple Silicon build of Local?

The remaining Intel binaries still present in 9.1.0 are:

  • MySQL (we’re working on bundling an Apple Silicon version of this now and hope to ship in the next release after 9.1).
  • rsync (Local bundles a newer version of rsync and ssh than Apple ships with macOS for features used by Local Connect. Local’s ssh binary is already universal, but we need to update the rsync binary for Apple Silicon).
  • Apache (not shipped with Local, but we need to provide an Apple Silicon version for download in case macOS users select Apache as their web server before we can truly consider Local to be Silicon-native).
  • The sudo-prompt applet. (When Local asks for your permission to write to /etc/hosts, it currently launches an Intel binary password prompt provided by the third-party sudo-prompt library. That library is no longer maintained, but we have some ideas to replace it with something that won’t require an Intel binary. Until we do that work, Local under Apple Silicon will need Rosetta to spawn the password prompt.)

We plan to work through this list until Local is fully Silicon native (although it’s not our only focus). Thanks for your patience, and it’s good to hear that it hasn’t been too big a detriment in the meantime.

6 Likes

In looking back at this list again, it does seem to me that the sudo-prompt applet is maybe the one that’ll indeed take longest. But two thoughts come to me:

  1. On Apple Silicon, or everywhere, an alternative can always be giving us instructions on what to add or remove from /etc/hosts manually. Even just the command you run to copy and paste into the Terminal. It may even be able to be kinda like site shells, and much more automated, but still opening into our Terminals and using our sudo authorization.
  2. There is a “supported” way to use Touch ID for sudo, which I’ve found convenient. I put in quotes because not on by default, but literally is just duplicating a system-provided file and uncommenting one line in it, so basically is ready to go and blessed by Apple for those comfortable enabling it. But the existing prompt doesn’t invoke this. Whatever replacement is found it would be great if it did invoke the ability to use Touch ID for sudo if that was configured on the system.
3 Likes

Hi all - I was writing a Twitter response to an Apple Silicon question, and figured I’d just give a longer update here.

We’re making good progress! Nick’s post above summarized the remaining pieces well -

  1. MySQL - DONE, code is tested and merged and will be released in the next minor version of Local. (There is a patch version, v9.1.1, releasing this week that is bug fixes only, and the MySQL changes are not included).
  2. rsync and ssh - These are in progress by Nick right now.
  3. Apache - We’re bumping the Apache that Local uses to the latest (2.4.62) at the same time, and this is in PR. Once merged, we’ll get it set for Apple Silicon and this will be done as well.
  4. Sudo-prompt - Not started.

Timeline -
Local v9.1.1 - available later this week (~20-22 Nov), no Apple Silicon specific related changes
Local v9.2 - Native MySQL, rsync, ssh, and Apache. I’d expect some if not all of these out in December.

That will leave sudo-prompt as the only remaining Intel binary left to slay. Hopefully this updated timeline is helpful!

7 Likes

Great news. Thx! :muscle:

1 Like

Great news @austinwendt!

As for sudo-prompt, everything you use that to do can be done on the command-line ourselves, right? So at worst you can always insist us M-series Mac users do a little bit manually. At least, in the far future that could be a stopgap measure if no alternative is found.

The other reality is that the way Local is built at the moment (and thinking mostly about sudo-prompt now), if you don’t have Rosetta installed Local doesn’t help you to understand it is required and install it. No real point in changing this much at this late hour of its actual dependence, but this has made even me (who knows this) have issues on new Macs (or, most recently, a VM) since macOS doesn’t prompt for Rosetta installation the way Local tries to use Intel binaries, and for now Local is the only software relying on Rosetta left on my Macs. This is terrible UX, and may be a reason to consider the “manual” sudo-prompt alternative if that turns out easier than a replacement. You can always re-add automation of these tasks to Local later on.

1 Like

Agreed - and thanks for chiming in.

Good news - @nickc is a wizard on the keyboard, and the sudo-prompt issue is resolved. Code is merged and native for Apple Silicon, to be included in the next release!

Only issue still outstanding is Apache, which we’re running in tandem a bit as we try to get PHP 8.4 available too.

It’s going to be a hell of a month :smiley:

Edit to recreate my status post from before:

  1. MySQL - DONE
  2. rsync and ssh - DONE
  3. Apache - In progress
  4. Sudo-prompt - DONE
8 Likes

:eyes: Local Beta 9.2.0

Headline of the release…

Features

  • Local is now fully Apple Silicon native on macOS. PHP, nginx, MySQL 8.0.35+, rsync, ssh, Apache, and authentication applets all use Apple Silicon or Universal binaries.

It’s a Beta release, but check it out! It is working great for us internally. We have some limited availability/support over the holiday season with people taking time off with family, so we didn’t want to release to production to be safe. If we don’t find/hear any major breaking issues, this will hit production when the team is back in January!

5 Likes

Local 9.2.0

Much like the Beta release, the latest Stable version of Local is now fully Apple Silicon native!

Download the latest version from the above link, or click “Local > Check for update” from an existing installation of Local!

7 Likes

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.