Mirror of the GitLab project Emacs Modified for macOS
Emacs Modified for macOS is a distribution of GNU Emacs bundled with a few select packages for R developers and LaTeX users, most notably ESS and AUCTeX. The distribution is based on GNU Emacs compiled by David Caldwell.
Other than the few selected additions and some minor configuration, this is a stock distribution of Emacs. Users of Emacs on other platforms will appreciate the similar look and feel of the application.
The official project page provides detailed information on the distribution and links to binary releases.
The repository contains a few distribution-specific files and a Makefile
to fetch the other components and combine everything into a disk image. The complete source code of Emacs and the extensions is not hosted here.
Building the distribution on macOS requires make
, hdiutil
, curl
, git
and a number of standard Unix command line tools. Many of these utilities do not come bundled with the operating system. One first needs to install Xcode from the App Store and, second, to install the Command Line Developer Tools by launching from the Terminal the following command:
$ xcode-select --install
Edit the Makeconf
file to set the version numbers of GNU Emacs, the distribution and the various extensions. Then make
will launch the following three main steps:
get-packages
will fetch the binary release of GNU Emacs and the extensions.
emacs
will, in summary, decompress the Emacs for Mac OS X disk image in a temporary directory, add all the extensions into the application tree and build a new signed application bundle.
release
will notarize the disk image, upload it to the GitLab package registry, and create a release with the a link to the disk image in the release notes.
Each of the above three steps is split into smaller recipes, around 20 in total. See the Makefile
for details.
Uploading files and publishing a release on GitLab from the command line involves using the GitLab API. The interested reader may have a look at the upload
and create-release
recipes in the Makefile
to see how we achieved complete automation of the process, including the extraction of the release notes from the NEWS
file.