Compare commits

..

13 Commits

Author SHA1 Message Date
ac5ff5d3c2 docs(readme): update nightly badge to include pre-releases 2021-07-03 00:37:46 +01:00
13410e3977 feat(builds): add support for building stable Emacs releases
As of build-emacs-for-macos v0.6.8, the emacs-builder tool supports
handling stable Emacs release differently, so we can easily separate
them from the regular nightly builds.
2021-07-03 00:21:55 +01:00
88f47746e4 fix(cask): trigger cask update in homebrew tap after publishing release 2021-07-02 00:13:17 +01:00
4ffe25022c chore(deps): update build-emacs-for-macos to 0.6.5 2021-07-01 23:42:20 +01:00
00094c131c docs(readme): improve formatting of Installation section 2021-06-29 02:58:04 +01:00
26b12fac27 docs(readme): update readme about homebrew cask installation method 2021-06-29 02:42:02 +01:00
25e2a41b22 chore(deps): update build-emacs-for-macos to 0.6.2
Should fix startup error about missing *.eln files.
2021-06-29 01:31:51 +01:00
1b2cc6e676 feat(cask): add workflow to trigger homebrew cask formula update on new release
This triggers the update formulas workflow in the
jimeh/homebrew-emacs-builds repo whenever a release or pre-release is
created in jimeh/emacs-builds.

This allows the cask formulas to automatically stay up to date with
latest nightly builds.
2021-06-29 00:28:47 +01:00
376125273b chore(deps): update build-emacs-for-macos to 0.6.1 2021-06-29 00:28:32 +01:00
832a6ffe75 ci(github): cache god modules to speed up emacs-builder compile time 2021-06-29 00:27:38 +01:00
72fc6962a7 chore(deps): update build-emacs-for-macos to 0.5.2
Should fix the recent build and signing issues with nightly builds.
2021-06-27 12:35:32 +01:00
d2d9494a44 chore(deps): update build-emacs-for-macos to 0.5.1 2021-06-27 02:36:42 +01:00
8d84df095a docs(readme): update with info about signing and notarization 2021-06-22 03:10:47 +01:00
3 changed files with 83 additions and 30 deletions

View File

@@ -10,23 +10,23 @@ on:
required: true
default: "master"
extraPlanArgs:
Description: "Extra plan args"
description: "Extra plan args"
required: false
default: ""
extraCheckArgs:
Description: "Extra check args"
description: "Extra check args"
required: false
default: ""
extraBuildArgs:
Description: "Extra build args"
description: "Extra build args"
required: false
default: ""
extraPackageArgs:
Description: "Extra package args"
description: "Extra package args"
required: false
default: ""
extraReleaseArgs:
Description: "Extra release args"
description: "Extra release args"
required: false
default: ""
@@ -40,11 +40,17 @@ jobs:
uses: actions/checkout@v2
with:
repository: jimeh/build-emacs-for-macos
ref: "v0.5.0"
ref: "v0.6.8"
path: builder
- uses: actions/setup-go@v2
with:
go-version: 1.16
- uses: actions/cache@v2
id: builder-cache
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('builder/**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
- name: Pre-build emacs-builder tool
run: make build
working-directory: builder
@@ -90,7 +96,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: jimeh/build-emacs-for-macos
ref: "v0.5.0"
ref: "v0.6.8"
path: builder
- uses: ruby/setup-ruby@v1
with:
@@ -186,9 +192,14 @@ jobs:
with:
name: dmg
path: builds
- name: Publish disk image to GitHub Release
- name: Publish disk image to a GitHub Release
run: >-
bin/emacs-builder -l debug release --plan build-plan.yml publish
${{ github.event.inputs.extraReleaseArgs }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger update casks workflow in homebrew tap
run: >-
gh workflow run --repo jimeh/homebrew-emacs-builds update-casks.yml
env:
GITHUB_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}

View File

@@ -19,23 +19,23 @@ on:
required: true
default: "prerelease"
extraPlanArgs:
Description: "Extra plan args"
description: "Extra plan args"
required: false
default: ""
extraCheckArgs:
Description: "Extra check args"
description: "Extra check args"
required: false
default: ""
extraBuildArgs:
Description: "Extra build args"
description: "Extra build args"
required: false
default: ""
extraPackageArgs:
Description: "Extra package args"
description: "Extra package args"
required: false
default: ""
extraReleaseArgs:
Description: "Extra release args"
description: "Extra release args"
required: false
default: ""
@@ -54,6 +54,12 @@ jobs:
- uses: actions/setup-go@v2
with:
go-version: 1.16
- uses: actions/cache@v2
id: builder-cache
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('builder/**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
- name: Pre-build emacs-builder tool
run: make build
working-directory: builder

View File

@@ -8,7 +8,7 @@
<p align="center">
<a href="https://github.com/jimeh/emacs-builds/releases/latest">
<img alt="GitHub release (latest)" src="https://img.shields.io/github/v/release/jimeh/emacs-builds?style=flat&label=nightly&color=%237F5AB6&logo=GNU%20Emacs&logoColor=white">
<img alt="GitHub release (latest)" src="https://img.shields.io/github/v/release/jimeh/emacs-builds?include_prereleases&style=flat&label=nightly&color=%237F5AB6&logo=GNU%20Emacs&logoColor=white&sort=semver">
</a>
<a href="https://github.com/jimeh/emacs-builds/issues">
<img alt="GitHub issues" src="https://img.shields.io/github/issues-raw/jimeh/emacs-builds?style=flat&logo=github&colorColor=white">
@@ -44,8 +44,8 @@
- 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.
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.
[build-emacs-for-macos]: https://github.com/jimeh/build-emacs-for-macos
@@ -61,7 +61,9 @@
- Intel-based Mac running macOS 10.15.x or later.
## Downloads
## Installation
### Manual Download
See the [Releases][] page to download latest builds.
@@ -73,30 +75,46 @@ any issues.
[releases]: https://github.com/jimeh/emacs-builds/releases
[7]: https://github.com/jimeh/emacs-builds/issues/7
## Untrusted Application
### Homebrew Cask
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.
1. Install the `jimeh/emacs-builds` Homebrew tap:
```
brew tap jimeh/emacs-builds
```
2. Install one of the available casks:
- `emacs-app-nightly` for the latest nightly build:
```
brew install --cask emacs-app-nightly
```
- `emacs-app-good` for the latest known good nightly build listed on [#7][7]:
```
brew install --cask emacs-app-good
```
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][1].
[1]: https://github.com/jimeh/emacs-builds/issues/1
[7]: https://github.com/jimeh/emacs-builds/issues/7
## 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:
```bash
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
it it's exposed via `PATH` or symlinked to from elsewhere.
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`:
@@ -131,6 +149,24 @@ 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`:
```bash
$ 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.
[emacs-mirror/emacs]: https://github.com/emacs-mirror/emacs
## Issues / To-Do