diff --git a/flake.nix b/flake.nix index 184c5f06d..506125edd 100644 --- a/flake.nix +++ b/flake.nix @@ -75,6 +75,7 @@ inherit (pkgs) emacs-unstable-pgtk; inherit (pkgs) emacs-git emacs-git-nox; inherit (pkgs) emacs-pgtk; + inherit (pkgs) emacs-igc emacs-igc-pgtk; }; packages = mkEmacsSet pkgs.emacs; diff --git a/overlays/emacs.nix b/overlays/emacs.nix index 1e25d7ef2..41dde15c4 100644 --- a/overlays/emacs.nix +++ b/overlays/emacs.nix @@ -146,6 +146,38 @@ let }; }); + emacs-igc = let base = (mkGitEmacs "emacs-igc" ../repos/emacs/emacs-feature_igc.json) { }; + emacs = emacs-igc; + in + base.overrideAttrs ( + oa: { + buildInputs = oa.buildInputs ++ [ super.mps ]; + configureFlags = oa.configureFlags ++ [ "--with-mps=yes" ]; + patches = oa.patches ++ [ + # XXX: #318 + ./bytecomp-revert.patch + ]; + passthru = oa.passthru // { + pkgs = oa.passthru.pkgs.overrideScope (eself: esuper: { inherit emacs; }); + }; + }); + + emacs-igc-pgtk = let base = (mkGitEmacs "emacs-igc-pgtk" ../repos/emacs/emacs-feature_igc.json) { withPgtk = true; }; + emacs = emacs-igc-pgtk; + in + base.overrideAttrs ( + oa: { + buildInputs = oa.buildInputs ++ [ super.mps ]; + configureFlags = oa.configureFlags ++ [ "--with-mps=yes" ]; + patches = oa.patches ++ [ + # XXX: #318 + ./bytecomp-revert.patch + ]; + passthru = oa.passthru // { + pkgs = oa.passthru.pkgs.overrideScope (eself: esuper: { inherit emacs; }); + }; + }); + emacs-lsp = (mkGitEmacs "emacs-lsp" ../repos/emacs/emacs-lsp.json) { withTreeSitter = false; }; commercial-emacs = (mkGitEmacs "commercial-emacs" ../repos/emacs/commercial-emacs-commercial-emacs.json) { @@ -195,6 +227,8 @@ in inherit commercial-emacs; + inherit emacs-igc emacs-igc-pgtk; + emacsWithPackagesFromUsePackage = import ../elisp.nix { pkgs = self; }; emacsWithPackagesFromPackageRequires = import ../packreq.nix { pkgs = self; }; diff --git a/repos/emacs/emacs-feature_igc.json b/repos/emacs/emacs-feature_igc.json new file mode 100644 index 000000000..d1dee3d1c --- /dev/null +++ b/repos/emacs/emacs-feature_igc.json @@ -0,0 +1 @@ +{"type": "savannah", "repo": "emacs", "rev": "7146d10b4625043d8e36dd91ff1574568158dc55", "sha256": "0pf3q756iwpg2dssdxanv8w84rid6yzqvysdaii3g1gb2ffr00dg", "version": "20250123.0"} diff --git a/repos/emacs/test.nix b/repos/emacs/test.nix index 1fc3ac5b0..7b517c33e 100644 --- a/repos/emacs/test.nix +++ b/repos/emacs/test.nix @@ -10,4 +10,5 @@ in { emacsUnstable = mkTestBuild pkgs.emacsUnstable; emacsGit = mkTestBuild pkgs.emacsGit; emacsPgtk = mkTestBuild pkgs.emacsPgtk; + emacsIgc = mkTestBuild pkgs.emacs-igc; } diff --git a/repos/emacs/update b/repos/emacs/update index df110bcce..46e85ef16 100755 --- a/repos/emacs/update +++ b/repos/emacs/update @@ -51,6 +51,7 @@ function update_release() { } update_savannah_branch master +update_savannah_branch feature/igc update_release update_github_repo emacs-lsp emacs json-rpc lsp update_github_repo commercial-emacs commercial-emacs master commercial-emacs