GithubHelp home page GithubHelp logo

meziberry / emacs-builds Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jimeh/emacs-builds

0.0 0.0 0.0 224 KB

Self-contained Emacs.app builds for macOS, with native-compilation support in nightly builds.

Home Page: https://github.com/jimeh/emacs-builds/releases

Go 100.00%

emacs-builds's Introduction

Logo

Emacs Builds

GitHub release (stable) GitHub release (pretest) GitHub release (nightly) GitHub release (nightly@emacs-29) GitHub release (known good nightly) GitHub issues GitHub pull requests GitHub all releases

Self-contained Emacs.app builds for macOS, with native-compilation support.

Features

  • Self-contained Emacs.app application bundle, with no external dependencies.
  • 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, 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-emacs-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.

Nightly builds of Emacs are for the most 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 for a day or two without any obvious issues.

Homebrew Cask

  1. Install the jimeh/emacs-builds Homebrew tap:
    brew tap jimeh/emacs-builds
    
  2. Install one of the available casks:
    • emacs-app for the latest stable release of Emacs (includes native-comp since v28.1):
      brew install --cask emacs-app
      
    • emacs-app-pretest for the latest pretest build from Emacs:
      brew install --cask emacs-app-pretest
      
    • emacs-app-nightly for the latest nightly build from Emacs' master branch:
      brew install --cask emacs-app-nightly
      
    • emacs-app-good for the latest known good nightly build listed on #7:
      brew install --cask emacs-app-good
      
    • emacs-app-nightly-29 for the latest Emacs 29.x nightly build from the emacs-29 branch:
      brew install --cask emacs-app-nightly-29
      

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 jimeh/build-emacs-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.

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.

Application Signing / Trust

As of June 21st, 2021, all builds are fully signed and notarized. The signing certificate used is: Developer ID Application: Jim Myhrberg (5HX66GF82Z)

To verify the application signature and notarization, you can use spctl:

$ spctl -vvv --assess --type exec /Applications/Emacs.app
/Applications/Emacs.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Jim Myhrberg (5HX66GF82Z)

All builds also come with a SHA256 checksum file, which itself can be double checked against the SHA256 checksum log output from the packaging step of the GitHub Actions workflow run which produced the build.

Issues / To-Do

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

emacs-builds's People

Contributors

deviant-logic avatar jimeh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.