Update the build-emacs-for-macos to v0.5.0, which includes a new emacs-builder CLI tool written in Go, which handles signing, dmg packaging, notarizing and stapling of Emacs builds. The main build process is still handled by the old Ruby script for now however. emacs-builder also includes plan and release commands, negating the need for the our custom github-release CLI tool. BREAKING CHANGE: Release assets are now signed *.dmg files instead of *.tbz archives.
Emacs Builds
Nightly binary builds of Emacs for macOS as a self-contained Emacs.app, with native-compilation.
Features
- Self-contained Emacs.app application bundle, with no external dependencies.
- Native-compilation (gccemacs).
- Native JSON parsing via libjansson.
- SVG rendering via librsvg.
- Various image formats are supported via macOS native image APIs.
- Xwidget-webkit support is enabled, allowing access to a embedded WebKit-based
browser with
M-x xwidget-webkit-browse-url. - Native XML parsing via libxml2.
- Dynamic module loading.
- Includes the fix-window-role and system-appearance patches from the excellent emacs-plus project.
- Emacs source is fetched from the emacs-mirror/emacs GitHub repository.
- Build creation is transparent and public through the use of GitHub Actions, allowing anyone to inspect git commit SHAs, full source code, and exact commands used to produce a build. This is especially important right now as builds are not yet signed and notarized.
- Uses build-emacs-for-macos to build the self-contained application bundle.
System Requirements
- Intel-based Mac running macOS 10.15.x or later.
Downloads
See the Releases page to download latest builds.
Nightly builds of Emacs are for the part just fine, but if you don't like living too close to the edge, see issue #7 Known Good Nightly Builds for a list of recent nightly builds which have been actively used by a living being without any issues.
Untrusted Application
Currently builds are not signed or notarized, meaning macOS cannot verify Emacs.app came from a trusted developer, and by default you are not given an option to trust the app and open it.
Simplest way around this is to right-click (or control-click) on the Emacs app in Finder and select "Open". You will then be given the same warning as before, but with a "Open" button now available to trust and open the app. After that you can open the application like normal without any warnings.
Builds will soon be signed and notarized, progress is tracked in Issue #1.
Use Emacs.app as emacs CLI Tool
Builds come with a custom emacs shell script launcher for use from the command
line, located next to emacsclient in Emacs.app/Contents/MacOS/bin.
The custom emacs script makes sure to use the main
Emacs.app/Contents/MacOS/Emacs executable from the correct path, ensuring it
finds all the relevant dependencies within the Emacs.app bundle, regardless of
it it's exposed via PATH or symlinked to from elsewhere.
To use it, simply add Emacs.app/Contents/MacOS/bin to your PATH. For
example, if you place Emacs.app in /Applications:
if [ -d "/Applications/Emacs.app/Contents/MacOS/bin" ]; then
export PATH="/Applications/Emacs.app/Contents/MacOS/bin:$PATH"
alias emacs="emacs -nw" # Always launch "emacs" in terminal mode.
fi
If you want emacs in your terminal to launch a GUI instance of Emacs, don't
use the alias from the above example.
Build Process
Building Emacs is done using the jimeh/build-emacs-for-macos build script, executed within a GitHub Actions workflow. This is why macOS 10.15.x or later is required, as it's the oldest version of macOS available in GitHub Actions.
Full history for all builds is available on GitHub Actions here.
Nightly builds are scheduled for 0:00 UTC every night, based on the latest
commit from the master branch of the emacs-mirror/emacs repository. This
means a nightly build will only be produced if there have been new commits since
the last nightly build.
Issues / To-Do
Please see Issues for details of things to come, or to report issues.