{ inputs, self, ... }: { imports = [ inputs.flake-parts.flakeModules.easyOverlay ]; perSystem = { config, self', inputs', pkgs, final, lib, system, ... }: let inherit (inputs.emacs-overlay.overlays.default pkgs pkgs) emacsPackagesFor; in { # Some tree-sitter grammars in nixpksg are built with a too new ABI # https://github.com/NixOS/nixpkgs/issues/209114 _module.args.pkgs = inputs.nixpkgs.legacyPackages.${system}.extend (self: super: { tree-sitter-grammars = super.tree-sitter-grammars // { tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs (_: { nativeBuildInputs = [self.nodejs self.tree-sitter]; configurePhase = '' tree-sitter generate --abi 13 src/grammar.json ''; }); }; }); packages = { ccrEmacsWithoutPackages = (inputs'.emacs-overlay.packages.emacs-unstable.override { # treeSitterPlugins = # builtins.attrValues # (builtins.removeAttrs pkgs.tree-sitter-grammars ["recurseForDerivations"]); withNS = false; withX = false; withGTK2 = false; withGTK3 = false; withWebP = false; }) .overrideAttrs (old: { name = "ccr-emacs"; version = "29"; }); ccrEmacs = (emacsPackagesFor self'.packages.ccrEmacsWithoutPackages).emacsWithPackages (import ./packages.nix pkgs); default = self'.packages.ccrEmacs; }; apps = { ccrEmacs.program = "${self'.packages.ccrEmacs}/bin/emacs"; default = self'.apps.ccrEmacs; }; }; }