railwaycat/homebrew-emacsmacport
57.2
Adequate · 19 September 2026
1.1k
lines of production code
Ruby
primary language
1
measurement over time
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.