About These Emacs Builds

I build three different release flavors of Emacs:

  1. Official releases
    These should be more stable but are not released very often.
  2. Pretests
    These are much more stable and are meant for vetting the code for last minute bugs before a final release.
  3. Nightlies
    These are bleeding edge builds and may have bugs. They are built directly from the public Git repository. I try to build these nightly.

The scripts I run basically just configure and build right from the GNU source—I don't add any patches or any extraneous lisp packages. I do include the old Carbon icon on the disk image because I like it better than the new Cocoa icon but it is not enabled by default.

Emacs is built on various versions of Mac OS X: 10.10 and 10.14 as of 2020-05-12 (64 bit only). All the binaries are combined into a single executable and a small Ruby launcher chooses which binary to run based on the machine's OS and architecture.

Why not just use a fat binary? Because fat binaries can only hold 1 of each architecture and Emacs has multiple x86_64 architectures binaries.

Why are there multiple x86_64 binaries? Even though recent versions of Emacs contain runtime feature detection, there is an issue with some library dependencies.

Because of the unstable nature of nightly builds, and (sadly) the relative fragility of OS X running on VMs, there may be days missing here and there.

Retired MacOS Versions

The current Nightlies and releases will not run on these versions of MacOS. The last built release and nightly that do work are listed.

MacOS VersionLast Working ReleaseLast Working Nightly
10.4 (PowerPC) Emacs-24.5-1 Emacs-2014-10-12
10.6 - 10.8 (Intel) Emacs-26.1-2 Emacs-2018-06-13
10.9 Emacs-26.3 Emacs-2019-12-03


Emacs builds as of 2021-03-26 include arm64 support (native Apple Silicon binaries). This includes the 27.2-1 release.
Also starting now, gnutls, jansson, libffi and their dependencies are not built with Homebrew--it kept breaking old builds, and moving the "unsupported" bar forward much quickly than I wanted to. Now I have tighter control over the dependency build process at the expense of having to maintain a bunch of custom code to download, configure and make them.
Emacs builds from 2020-03-03 to 2020-05-12 do not include support for 10.9-10.13. Homebrew stopped being able to compile gnutls and doesn't accept bug reports for 10.9 and so I dropped it. It didn't occur to me at the time that dropping 10.9 and not replacing it with something else would also kill 10.10, 10.11, 10.12, and 10.13. So those nightlies and the 27.0.90 pretest were only built for 10.14 and above.
Today I added 10.10 into the build so nightlies from 2020-05-13 and the 27.0.91-1 pretest should work with anything from 10.10 to 10.15.
Emacs builds as of 2018-12-05 do not include support for 10.6-10.8. Only 10.9 and above are being supported. The SSL issue I noted back in 2018-04-10 is deeper now—I cannot download the Ruby that I need to run the build scripts on those old OSes. I had to wipe the Jenkins workspace and it basically killed those builds. At the same time I ran into an Emacs bug that was causing the elisp to not compile on 10.6. And yet another bug was causing all the build slaves to be offline. I procrastinated figuring these 2 issues out for 6 months and finally decided to just remove support for these old OSes. The last Emacs builds to support 10.8, 10.7 and 10.6 are Emacs 26.1 and the Emacs nightly from 2018-06-13.
Recent Emacs builds (since 2018-04-10) do not include gnutls on 10.8 and lower. Unfortunately the method of downloading gnutls (Homebrew) stopped working because the servers stopped supporting old SSL versions and 10.8's SSL libs aren't new enough. The Emacs 26.0.91-1 pretest is the last version that has gnutls on Mac OS 10.8.
Recent Emacs builds (since 2016-08-15) include gnutls (except on Mac OS 10.6—Homebrew doesn't work on 10.6 and I don't want to spend a lot of time compiling gnutls on a platform that is barely used). You can now use https urls in the package configuration. Yay!
Recent Emacs builds (since 2012-12-16) have been built against Mac OS 10.7 (Lion) and have Lion full screen support if you are running on Lion or Mountain Lion. They also have better retina display support and are code signed. Also Yay!
Recent Emacs builds (since 2009-12-09) have 64 bit Intel support in the Universal Binary. Yay!

The Build Scripts

I rewrote the build scripts in 2014 to make them more modular so I could easily control them with Jenkins. I also moved them from shell to Ruby, which cleaned things up tremendously. They still aren't documented super well, but they should be easier to read, at least.

David Caldwell