Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 5.33 KB

README.org

File metadata and controls

79 lines (60 loc) · 5.33 KB

Logo

Emacs NG Builds

General Emacs NG Emacs NG

Features

Webrender build

  • Webrender support (experimental).
  • SVG rendering not supported yet.
  • xwidget not surpport yet.

Default build

  • Self-contained Emacs.app application bundle, with no external dependencies.
  • Javascript support (coming soon).
  • Native compilation (gccemacs), only in Emacs 28.x and later builds.
  • Native JSON parsing via libjansson.
  • SVG rendering via librsvg.
  • Various image formats are supported via macOS native image APIs.
  • Xwidget-webkit support is enabled without Webrender, 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, system-appearance, and round-undecorated-frame 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.
  • Emacs.app is signed with a developer certificate and notarized by Apple.
  • Uses build-emacsng-for-macos to build the self-contained application bundle.

System Requirements

  • macOS 11.x (Big Sur) or later (uses Rosetta2 on Apple Silicon machines).
  • Xcode Command Line Tools for native compilation (Emacs 28.x and later).

Installation

Manual Download

See the Releases page to download latest builds, or here for the latest stable release.

Homebrew Cask

Use Emacs.app as emacs CLI Tool

Installed via Homebrew Cask

The cask installation method sets up CLI usage automatically by exposing a emacs command. However it will launch Emacs into GUI mode. To instead have emacs in your terminal open a terminal instance of Emacs, add the following alias to your shell setup:

alias emacs="emacs -nw"

Installed Manually

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 if it’s exposed via PATH or symlinked 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 emacs-ng/build-emacsng-for-macos build script, executed within a GitHub Actions workflow. This is why macOS 11.x (Big Sur) 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. Build logs are only retained by GitHub for 90 days though.

Builds are scheduled for 0:00 UTC every night, based on the latest commit from the master branch of the emacs-ng/emacs-ng repository. This means a nightly build will only be produced if there have been new commits since the last nightly build.

Application Signing / Trust

Issues / To-Do

Please see Issues for details of things to come, or to report issues.