nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
Anthony Cowley 3a35e4c768 emacs: do not use seq package from elpa for emacs >= 27
The `seq` package that comes with emacs 27 is newer than that provided
by ELPA. Various packages list `seq` as an input, causing it to be
imported from ELPA in addition to the (newer) version bundled with
emacs. Relying on the version packaged with emacs resolves the
conflict.

Fixes #73346
2019-12-03 15:04:08 -05:00

52 lines
1.2 KiB
Nix

/*
# Updating
To update the list of packages from MELPA,
1. Run `./update-elpa`.
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages`.
3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
*/
{ lib, stdenv, texinfo }:
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;
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;
};
elpaPackages = super // overrides;
in elpaPackages // { inherit elpaBuild; });
in generateElpa { }