- Introduced CLAUDE.md to provide comprehensive guidance on the macOS Emacs building system, including project overview, common commands, architecture details, and testing instructions.
- Updated nixpkgs revision and narHash in flake.lock.
- Upgraded expat to version 2.7.3 and openssl to version 3.4.3 in flake.pkgs.
- Modified flake-package-versions command in Makefile for improved output.
This allows users to easily apply custom patches from a file on disk, or
from a URL. It's particularly hady to quickly test out a changeset from
a GitHub commit/diff or elsewhere.
Because we bundle libgccjit and gcc libraries, as well as C sources into
the Emacs .app bundle itself, some extra setup is required during
startup of Emacs to ensure that native compliation works, and C sources
are found when needed.
Previously this was done by adding a custom site-start.el file to the
Emacs.app bundle, which was loaded at startup. This approach had some
issues, namely that when launching Emacs with `-Q` or `--no-site-file`,
the file was not loaded, preventing native compilation from working.
Here we replace the site-start.el approach with a custom patch adding
macos-startup.el, which adds a hook to `after-pdump-load-hook`. This
ensures that the startup code is always run, and before any user
configuration is loaded.
Changelog files from the `src` directory are however excluded. They're
6.7MB, span 1985 to 2015, and are not very relevant for inclusion within
the Emacs.app bundle.
Resolves https://github.com/jimeh/emacs-builds/issues/40
This serves as an alternative to Homebrew. It should be much more stable
and cause less headaches over time for automated builds.
There should be no change to the end user experience of using the build
script, as it should still work with and use Homebrew by default.
Additionally, Nix provides older Apple SDKs, allowing us to run against
macOS 11.x SDKs. This allows the resulting Emacs.app builds to be
compatible with macOS 11.x and later versions.
In testing, this seems to be the case on macOS 11.x (x86_64) and macOS
12.x (arm64).
Increases max open file limit to 10000 the same way as emacs-plus does.
This is necessary for some packages like lsp-mode to work properly in
some cases.
The limit is configurable via the `--fd-setsize` option. The default is
`10000`. To disable this feature, use the `--no-fd-setsize` option, or
provide `--fd-setsize` with a value that is less than `1024`.
Fixes#106
Some much needed tidying of the patches method, along with
double-checking that all patches only apply to relevant emacs versions
correctly.
Along those lines, the optional poll patch is now deprecated, as the
upstream patch file has been removed from emacs-plus due to reports of
it never working correctly.