|
|
|
@ -13,44 +13,15 @@ To update the list of packages from ELPA, |
|
|
|
|
|
|
|
|
|
{ fetchurl, lib, stdenv, texinfo }: |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
|
|
|
|
|
inherit (lib) makeScope mapAttrs; |
|
|
|
|
|
|
|
|
|
json = builtins.readFile ./elpa-packages.json; |
|
|
|
|
manifest = builtins.fromJSON json; |
|
|
|
|
|
|
|
|
|
mkPackage = self: name: recipe: |
|
|
|
|
let drv = |
|
|
|
|
{ elpaBuild, stdenv, fetchurl }: |
|
|
|
|
let |
|
|
|
|
unknownFetcher = |
|
|
|
|
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'"; |
|
|
|
|
fetch = |
|
|
|
|
{ inherit fetchurl; }."${recipe.fetch.tag}" |
|
|
|
|
or unknownFetcher; |
|
|
|
|
args = builtins.removeAttrs recipe.fetch [ "tag" ]; |
|
|
|
|
src = fetch args; |
|
|
|
|
in elpaBuild { |
|
|
|
|
pname = name; |
|
|
|
|
inherit (recipe) version; |
|
|
|
|
inherit src; |
|
|
|
|
packageRequires = |
|
|
|
|
let lookupDep = d: self."${d}" or null; |
|
|
|
|
in map lookupDep recipe.deps; |
|
|
|
|
meta = { |
|
|
|
|
homepage = "http://elpa.gnu.org/packages/${name}.html"; |
|
|
|
|
license = stdenv.lib.licenses.free; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
in self.callPackage drv {}; |
|
|
|
|
|
|
|
|
|
in |
|
|
|
|
|
|
|
|
|
self: |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
super = removeAttrs (mapAttrs (mkPackage self) manifest) [ "dash" ]; |
|
|
|
|
|
|
|
|
|
imported = import ./elpa-generated.nix { |
|
|
|
|
inherit (self) callPackage; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
super = removeAttrs imported [ "dash" ]; |
|
|
|
|
|
|
|
|
|
elpaBuild = import ../../../build-support/emacs/melpa.nix { |
|
|
|
|
inherit fetchurl lib stdenv texinfo; |
|
|
|
@ -63,11 +34,14 @@ self: |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
elpaPackages = super // { |
|
|
|
|
overrides = { |
|
|
|
|
# These packages require emacs-25 |
|
|
|
|
el-search = markBroken super.el-search; |
|
|
|
|
iterators = markBroken super.iterators; |
|
|
|
|
midi-kbd = markBroken super.midi-kbd; |
|
|
|
|
stream = markBroken super.stream; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
elpaPackages = super // overrides; |
|
|
|
|
|
|
|
|
|
in elpaPackages // { inherit elpaBuild elpaPackages; } |
|
|
|
|