diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix new file mode 100644 index 000000000000..034b698137b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix @@ -0,0 +1,65 @@ +/* + +# Updating + +To update the list of packages from MELPA, + +1. Run `./update-elpa`. +2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacs.pkgs.elpaPackages`. +3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix` + +## Update from overlay + +Alternatively, run the following command: + +./update-from-overlay + +It will update both melpa and elpa packages using +https://github.com/nix-community/emacs-overlay. It's almost +instantenous and formats commits for you. + +*/ + +{ lib, stdenv, texinfo, writeText }: + +self: let + + markBroken = pkg: pkg.override { + elpaBuild = args: self.elpaBuild (args // { + meta = (args.meta or {}) // { broken = true; }; + }); + }; + + elpaBuild = import ../../../build-support/emacs/elpa.nix { + inherit lib stdenv texinfo writeText; + inherit (self) emacs; + }; + + generateElpa = lib.makeOverridable ({ + generated ? ./elpa-generated.nix + }: let + + imported = import generated { + inherit (self) callPackage; + }; + + super = removeAttrs imported [ "dash" ]; + + overrides = { + rcirc-menu = markBroken super.rcirc-menu; # Missing file header + cl-lib = null; # builtin + tle = null; # builtin + advice = null; # builtin + seq = if lib.versionAtLeast self.emacs.version "27" + then null + else super.seq; + project = if lib.versionAtLeast self.emacs.version "28" + then null + else super.project; + }; + + elpaPackages = super // overrides; + + in elpaPackages // { inherit elpaBuild; }); + +in generateElpa { } |