emacsPackagesNg: add all of MELPA

This commit is contained in:
Thomas Tuegel 2015-12-15 11:57:51 -06:00
parent 4e99a11653
commit 8e655250bd
5 changed files with 101 additions and 55 deletions

View File

@ -10,8 +10,12 @@ let
mkPackage = self: name: recipe: mkPackage = self: name: recipe:
let drv = let drv =
{ elpaBuild, stdenv, fetchurl }: { elpaBuild, stdenv, fetchurl }:
let fetch = { inherit fetchurl; }."${recipe.fetch.tag}" let
or (abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'"); unknownFetcher =
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
fetch =
{ inherit fetchurl; }."${recipe.fetch.tag}"
or unknownFetcher;
args = builtins.removeAttrs recipe.fetch [ "tag" ]; args = builtins.removeAttrs recipe.fetch [ "tag" ];
src = fetch args; src = fetch args;
in elpaBuild { in elpaBuild {
@ -19,8 +23,7 @@ let
inherit (recipe) version; inherit (recipe) version;
inherit src; inherit src;
deps = deps =
let lookupDep = d: let lookupDep = d: self."${d}" or null;
self."${d}" or (abort "emacs-${name}: missing dependency ${d}");
in map lookupDep recipe.deps; in map lookupDep recipe.deps;
meta = { meta = {
homepage = "http://elpa.gnu.org/packages/${name}.html"; homepage = "http://elpa.gnu.org/packages/${name}.html";
@ -29,14 +32,23 @@ let
}; };
in self.callPackage drv {}; in self.callPackage drv {};
packages = self: in
self:
let let
elpaPackages = mapAttrs (mkPackage self) manifest; super = mapAttrs (mkPackage self) manifest;
elpaBuild = import ../../../build-support/emacs/melpa.nix { elpaBuild = import ../../../build-support/emacs/melpa.nix {
inherit (pkgs) lib stdenv fetchurl texinfo; inherit (pkgs) lib stdenv fetchurl texinfo;
inherit (self) emacs; inherit (self) emacs;
}; };
in elpaPackages // { inherit elpaBuild elpaPackages; };
in makeScope pkgs.newScope packages builtin = null;
markBroken = pkg: pkg.override {
elpaBuild = args: self.elpaBuild (args // {
meta = (args.meta or {}) // { broken = true; };
});
};
in super // { inherit elpaBuild; elpaPackage = super; }

View File

@ -9,9 +9,15 @@ let
mkPackage = self: name: recipe: mkPackage = self: name: recipe:
let drv = let drv =
{ melpaBuild, stdenv, fetchurl }: { melpaBuild, stdenv, fetchurl, fetchcvs, fetchgit, fetchhg }:
let fetch = { inherit fetchurl; }."${recipe.fetch.tag}" let
or (abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'"); unknownFetcher =
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
fetch =
{
inherit fetchurl fetchcvs fetchgit fetchhg;
}."${recipe.fetch.tag}"
or unknownFetcher;
args = builtins.removeAttrs recipe.fetch [ "tag" ]; args = builtins.removeAttrs recipe.fetch [ "tag" ];
src = fetch args; src = fetch args;
in melpaBuild { in melpaBuild {
@ -19,8 +25,7 @@ let
inherit (recipe) version; inherit (recipe) version;
inherit src; inherit src;
deps = deps =
let lookupDep = d: let lookupDep = d: self."${d}" or null;
self."${d}" or (abort "emacs-${name}: missing dependency ${d}");
in map lookupDep recipe.deps; in map lookupDep recipe.deps;
meta = { meta = {
homepage = "http://melpa.org/#/${name}"; homepage = "http://melpa.org/#/${name}";
@ -29,14 +34,17 @@ let
}; };
in self.callPackage drv {}; in self.callPackage drv {};
packages = self: in
self:
let let
melpaPackages = mapAttrs (mkPackage self) manifest; super = mapAttrs (mkPackage self) manifest;
melpaBuild = import ../../../build-support/emacs/melpa.nix { markBroken = pkg: pkg.override {
inherit (pkgs) lib stdenv fetchurl texinfo; melpaBuild = args: self.melpaBuild (args // {
inherit (self) emacs; meta = (args.meta or {}) // { broken = true; };
});
}; };
in melpaPackages // { inherit melpaBuild melpaPackages; }; in
super // { melpaPackages = super; }
in makeScope pkgs.newScope packages

View File

@ -9,9 +9,15 @@ let
mkPackage = self: name: recipe: mkPackage = self: name: recipe:
let drv = let drv =
{ melpaBuild, stdenv, fetchurl }: { melpaBuild, stdenv, fetchurl, fetchcvs, fetchgit, fetchhg }:
let fetch = { inherit fetchurl; }."${recipe.fetch.tag}" let
or (abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'"); unknownFetcher =
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
fetch =
{
inherit fetchurl fetchcvs fetchgit fetchhg;
}."${recipe.fetch.tag}"
or unknownFetcher;
args = builtins.removeAttrs recipe.fetch [ "tag" ]; args = builtins.removeAttrs recipe.fetch [ "tag" ];
src = fetch args; src = fetch args;
in melpaBuild { in melpaBuild {
@ -19,8 +25,7 @@ let
inherit (recipe) version; inherit (recipe) version;
inherit src; inherit src;
deps = deps =
let lookupDep = d: let lookupDep = d: self."${d}" or null;
self."${d}" or (abort "emacs-${name}: missing dependency ${d}");
in map lookupDep recipe.deps; in map lookupDep recipe.deps;
meta = { meta = {
homepage = "http://stable.melpa.org/#/${name}"; homepage = "http://stable.melpa.org/#/${name}";
@ -29,14 +34,17 @@ let
}; };
in self.callPackage drv {}; in self.callPackage drv {};
packages = self: in
self:
let let
melpaStablePackages = mapAttrs (mkPackage self) manifest; super = mapAttrs (mkPackage self) manifest;
melpaBuild = import ../../../build-support/emacs/melpa.nix { markBroken = pkg: pkg.override {
inherit (pkgs) lib stdenv fetchurl texinfo; melpaBuild = args: self.melpaBuild (args // {
inherit (self) emacs; meta = (args.meta or {}) // { broken = true; };
});
}; };
in melpaStablePackages // { inherit melpaBuild melpaStablePackages; }; in
super // { melpaStablePackages = super; }
in makeScope pkgs.newScope packages

View File

@ -11627,7 +11627,8 @@ let
emacsPackagesNgGen = emacs: callPackage ./emacs-packages.nix { emacsPackagesNgGen = emacs: callPackage ./emacs-packages.nix {
overrides = (config.emacsPackageOverrides or (p: {})) pkgs; overrides = (config.emacsPackageOverrides or (p: {})) pkgs;
inherit emacs elpaPackages; inherit newScope;
inherit emacs elpaPackages melpaPackages melpaStablePackages;
trivialBuild = callPackage ../build-support/emacs/trivial.nix { trivialBuild = callPackage ../build-support/emacs/trivial.nix {
inherit emacs; inherit emacs;
@ -11647,8 +11648,13 @@ let
emacs24PackagesNg = recurseIntoAttrs (emacsPackagesNgGen emacs24); emacs24PackagesNg = recurseIntoAttrs (emacsPackagesNgGen emacs24);
elpaPackages = elpaPackages =
let imported = import ../applications/editors/emacs-modes/elpa-packages.nix pkgs; import ../applications/editors/emacs-modes/elpa-packages.nix pkgs;
in recurseIntoAttrs (imported.override (super: self: { inherit emacs; }));
melpaStablePackages =
import ../applications/editors/emacs-modes/melpa-stable-packages.nix pkgs;
melpaPackages =
import ../applications/editors/emacs-modes/melpa-packages.nix pkgs;
emacsWithPackages = callPackage ../build-support/emacs/wrapper.nix { }; emacsWithPackages = callPackage ../build-support/emacs/wrapper.nix { };
emacs24WithPackages = emacsWithPackages.override { emacs = emacs24; }; emacs24WithPackages = emacsWithPackages.override { emacs = emacs24; };

View File

@ -33,9 +33,9 @@
{ overrides { overrides
, lib, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg , lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg
, emacs, elpaPackages , emacs, elpaPackages, melpaPackages, melpaStablePackages
, trivialBuild , trivialBuild
, melpaBuild , melpaBuild
@ -44,7 +44,14 @@
with lib.licenses; with lib.licenses;
let packagesFun = super: self: with self; { let
addMelpaPackages = scope: scope.override (super: melpaPackages);
addMelpaStablePackages = scope: scope.override (super: melpaStablePackages);
addElpaPackages = scope: scope.override (super: elpaPackages);
addOverrides = scope: scope.override packagesFun;
packagesFun = super: self: with self; {
inherit emacs melpaBuild trivialBuild; inherit emacs melpaBuild trivialBuild;
@ -2021,4 +2028,9 @@ let packagesFun = super: self: with self; {
}; };
in elpaPackages.override packagesFun in
addOverrides
(addElpaPackages
(addMelpaStablePackages
(addMelpaPackages
(lib.makeScope newScope (self: { inherit emacs; })))))