Skip to content
CAI
Software that uses CAICheck a score

railwaycat/homebrew-emacsmacport

57.2

Adequate · 19 September 2026

1.1k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Homebrew tap that builds and distributes custom macOS versions of Emacs, specifically the emacs-mac port. It provides stable and experimental formulas for versions 28 through 32, along with corresponding Homebrew casks for both Intel and Apple Silicon architectures. The repository automates the build process using dedicated scripts and CI pipelines to apply macOS-specific patches, manage dependencies, and generate distributable application bundles.

Features

Add Emacs 28 formula and new experimental formulas for versions 30, 31, and 32

The tap now provides a stable formula for Emacs 28 (emacs-mac@28) alongside new experimental formulas for upcoming versions: emacs-mac@30exp, emacs-mac@31exp, and emacs-mac@32exp. The Emacs 28 formula includes support for native compilation, xwidgets, and various icon options. The experimental formulas track specific commits or branches from the jdtsmith fork, with Emacs 31 and 32 being HEAD-only builds. All formulas support options for native compilation, xwidgets, unlimited select, and Metal-based double buffering.

Formula · high confidence

Add casks for Emacs-mac v28 and v29 with macOS version-specific binaries

New Homebrew casks have been added for Emacs-mac versions 28 (v28.3-rc1) and 29 (v29.4), providing installers for both Intel and Apple Silicon Macs. These casks introduce granular macOS version requirements, distinguishing between macOS 13 (Ventura), 14 (Sonoma), and 15 (Sequoia) for Apple Silicon builds, and ensuring Intel builds target macOS 13. The v29 casks replace the previous default version, while the v28 casks offer an alternative stable release, with the spacemacs-icon variants providing a specific application icon.

Casks · high confidence

Added alias for emacs-mac formula

A new symbolic link named 'emacs-mac' has been added to the Aliases directory, pointing to the [e-mail redacted] formula file. This allows users to reference the specific version 29 of the emacs-mac formula using a simpler alias name.

Aliases · high confidence

Added new icon options and preview generation

The icons directory now includes a Makefile to generate PNG previews from ICNS source files and a README documenting the available icon choices. Users can now select from additional icon variants, including several from the emacs-icons-project (such as EmacsTerm, EmacsVapor, EmacsIcon1-9, and various card styles), as well as new options like the retro-sink black-and-white icon, gnu-head, modern, sjrmanning, spacemacs, and sexy icons.

icons · high confidence

Behavioural changes

Introduce dedicated build scripts and Brewfiles for Emacs 28, 29, and 30

The repository now includes a structured set of build scripts in the \build-scripts/\ directory to automate the creation of macOS Emacs bundles. This change introduces version-specific source fetchers (\fetch-src-emacs-28.sh\, \fetch-src-emacs-29.sh\, \fetch-src-emacs-30exp.sh\) that retrieve code from specific upstream commits and apply necessary patches, such as multi-tty support and natural title bar adjustments. It adds \Brewfile-29\ and \Brewfile-30\ to define Homebrew dependencies (including \tree-sitter\ and \libyaml\) and a core \build-emacs.sh\ script that configures the build with modules, xwidgets, and tree-sitter support. Supporting utilities like \copylib.rb\ handle library embedding and \install\_name\_tool\ adjustments for self-contained apps, while \make-zipball.sh\ generates the final distributable archives with SHA256 checksums.

build-scripts · high confidence

Repository restructured with new CI pipelines and updated documentation

The repository has been reorganized to support modern build and distribution workflows. New CI configurations for Azure Pipelines and Travis CI have been added to automate building and packaging Emacs Mac Port for various macOS versions (10.14, 10.15, 11). The old Homebrew formula file (emacs-mac.rb) has been removed, and the README has been significantly updated to reflect support for Emacs 29 and experimental versions (30, 31, 32), including instructions for Homebrew formulas and casks, as well as pre-built downloads for Intel and Apple Silicon Macs. A BSD 2-Clause License file has also been added.

(repo-wide) · high confidence

Shared library for icon metadata and URL resolution

A new Library directory has been introduced to house shared code used across formula versions. This includes Icons.rb, which centralizes the names and SHA-256 hashes of all supported application icons, and UrlResolver.rb, which provides logic to resolve paths for patches and icons based on whether the build is running locally or within the Homebrew tap environment.

Library · high confidence

macOS-specific patches for Emacs build and behavior

This update adds and refines several patches for the macOS Emacs build. It enables multi-tty support by allowing terminal frames on macOS (previously restricted to Windows), fixes ARM64 code-signing issues by correcting the configuration pattern and re-signing after dumping, and improves font metrics by preferring OS/2 table values for ascender/descender/linegap. It also introduces user-controllable title bar styles (transparent, dark, light, and hiding document icons) via defaults, adds a new \mac-use-title-bar\ customization option, fixes the \man\ command's portability by using POSIX character classes, and ensures compatibility with macOS 26 by disabling specific event features and using the non-prefixed \posix\_spawn\_file\_actions\_addchdir\_np\ when needed.

patches · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 57.

Lenses

  • Code Health 99
  • Architecture 69
  • Maturity 55
  • Readiness 55
  • Security 53

Changes since last survey

  • 300 commits — 243 feature/other, 57 fixes

By area

  • Formula/emacs-mac.rb — 90 commits
  • (root) — 67 commits
  • Casks/emacs-mac-spacemacs-icon.rb — 29 commits
  • (repo) — 27 commits
  • .github/workflows — 20 commits
  • Casks/emacs-mac-snapshot.rb — 7 commits
  • build-scripts/fetch-emacs-mac-port.sh — 7 commits
  • docs/emacs-start-helpers.md — 7 commits
  • build-scripts/build-emacs.sh — 5 commits
  • Formula/[e-mail redacted] — 4 commits
  • Casks/emacs-mac.rb — 3 commits
  • Formula/[e-mail redacted] — 3 commits
  • icons/README.md — 3 commits
  • Casks/emacs-mac-28-spacemacs-icon.rb — 2 commits
  • Formula/[e-mail redacted] — 2 commits
  • Formula/[e-mail redacted] — 2 commits
  • Library/UrlResolver.rb — 2 commits
  • build-scripts/Brewfile — 2 commits
  • icons/Makefile — 2 commits
  • Aliases/emacs-mac — 1 commit

Notable commits

  • fix: Fix bug in natural title bar patch
  • fix: Fix deprecated depends_on macos syntax
  • fix: Fix emacs-mac app build for both 29 and 28
  • fix: Fix formula audit
  • fix: Fix formula style warnings
  • fix: Fix formula version for 29
  • fix: Fix missing commas in Formula/emacs-mac.rb
  • fix: Fix quote issue for helper 2 installation
  • fix: Fixed 30exp build workflow
  • fix: Grammar fix in readme
  • fix: Merge pull request #261 from cowboy-bebug/fix/doom-binary-dir
  • fix: Revert "update cask for future unofficial release emacs-26.2-mac-7.6.1"
  • fix: add option to build with librsvg, issue #178 fixed
  • fix: azure CI: fix version
  • fix: cask emacs-27.2-mac-8.3.1, fix deps on arm64
  • fix: casks: remove deprecated verified field. This change fix #425 (#426)
  • fix: fix #273
  • fix: fix 414: the symlink when build with native compilation
  • fix: fix Brewfile path
  • fix: fix SDK version for 10.14 build with latest Xcode
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

railwaycat/homebrew-emacsmacport was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7c99629657f22132c61cbe4c61329d18b05ca0ea — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.