summary refs log tree commit diff
path: root/pkgs/top-level/emacs-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/emacs-packages.nix')
-rw-r--r--pkgs/top-level/emacs-packages.nix1216
1 files changed, 1216 insertions, 0 deletions
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
new file mode 100644
index 00000000000..a4f5310ab95
--- /dev/null
+++ b/pkgs/top-level/emacs-packages.nix
@@ -0,0 +1,1216 @@
+# package.el-based emacs packages
+#
+## add this at the start your init.el:
+# (require 'package)
+#
+# ;; optional. makes unpure packages archives unavailable
+# (setq package-archives nil)
+#
+# (add-to-list 'package-directory-list "/run/current-system/sw/share/emacs/site-lisp/elpa")
+#
+# ;; optional. use this if you install emacs packages to user profiles (with nix-env)
+# (add-to-list 'package-directory-list "~/.nix-profile/share/emacs/site-lisp/elpa")
+#
+# (package-initialize)
+
+{ overrides
+
+, lib, stdenv, fetchurl, fetchgit, fetchFromGitHub
+
+, emacs
+, trivialBuild
+, melpaBuild
+
+, external
+}@args:
+
+with lib.licenses;
+
+let self = _self // overrides;
+    callPackage = lib.callPackageWith (self // removeAttrs args ["overrides" "external"]);
+    _self = with self; {
+
+  inherit emacs;
+
+  ## START HERE
+
+  ac-haskell-process = melpaBuild rec {
+    pname   = "ac-haskell-process";
+    version = "0.5";
+    src = fetchFromGitHub {
+      owner  = "purcell";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0dlrhc1dmzgrjvcnlqvm6clyv0r6zray6qqliqngy14880grghbm";
+    };
+    packageRequires = [ auto-complete haskell-mode ];
+    meta = { license = gpl3Plus; };
+  };
+
+  ace-jump-mode = melpaBuild rec {
+    pname   = "ace-jump-mode";
+    version = "20140616";
+    src = fetchFromGitHub {
+      owner  = "winterTTr";
+      repo   = pname;
+      rev    = "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac";
+      sha256 = "17axrgd99glnl6ma4ls3k01ysdqmiqr581wnrbsn3s4gp53mm2x6";
+    };
+    meta = {
+      description = "Advanced cursor movements mode for Emacs";
+      license = gpl3Plus;
+    };
+  };
+
+  ag = melpaBuild rec {
+    pname   = "ag";
+    version = "0.44";
+    src = fetchFromGitHub {
+      owner  = "Wilfred";
+      repo   = "${pname}.el";
+      rev    = version;
+      sha256 = "19y5w9m2flp4as54q8yfngrkri3kd7fdha9pf2xjgx6ryflqx61k";
+    };
+    packageRequires = [ dash s ];
+    meta = { license = gpl3Plus; };
+  };
+
+  agda2-mode = with external; trivialBuild {
+    pname = "agda-mode";
+    version = Agda.version;
+
+    phases = [ "buildPhase" "installPhase" ];
+
+    # already byte-compiled by Agda builder
+    buildPhase = ''
+      agda=`${Agda}/bin/agda-mode locate`
+      cp `dirname $agda`/*.el* .
+    '';
+
+    meta = {
+      description = "Agda2-mode for Emacs extracted from Agda package";
+      longDescription = ''
+        Wrapper packages that liberates init.el from `agda-mode locate` magic.
+        Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
+      '';
+      homepage = Agda.meta.homepage;
+      license = Agda.meta.license;
+    };
+  };
+
+  alert = melpaBuild rec {
+    pname = "alert";
+    version = "1.2";
+    src = fetchFromGitHub {
+      owner = "jwiegley";
+      repo  = pname;
+      rev   = "v${version}";
+      sha256 = "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26";
+    };
+    packageRequires = [ gntp log4e ];
+    meta = { license = gpl2Plus; };
+  };
+
+  anzu = melpaBuild rec {
+    pname = "anzu";
+    version = "0.52";
+    src = fetchFromGitHub {
+      owner = "syohex";
+      repo  = "emacs-anzu";
+      rev = "f41db6225d8fb983324765aa42c94d3ee379a49f";
+      sha256 = "1mn20swasrl8kr557r1850vr1q0gcnwlxxafnc6lq5g01kjfcdxd";
+    };
+    meta = {
+      description = "Show number of matches in Emacs mode-line while searching";
+      longDescription = ''
+        anzu.el is an Emacs port of anzu.vim. anzu.el provides a minor
+        mode which displays current match and total matches information
+        in the mode-line in various search mode.
+      '';
+      homepage = https://github.com/syohex/emacs-anzu/;
+      license = gpl3Plus;
+    };
+  };
+
+  apel = melpaBuild rec {
+    pname = "apel";
+    version = "10.8";
+    src = fetchFromGitHub {
+      owner  = "wanderlust";
+      repo   = pname;
+      rev    = "8402e59eadb580f59969114557b331b4d9364f95";
+      sha256 = "0sdxnf4b8rqs1cbjxh23wvxmj7ll3zddv8yfdgif6zmgyy8xhc9m";
+    };
+    files = [
+      "alist.el" "apel-ver.el" "broken.el" "calist.el"
+      "emu.el" "filename.el" "install.el" "inv-23.el" "invisible.el"
+      "mcharset.el" "mcs-20.el" "mcs-e20.el" "mule-caesar.el"
+      "path-util.el" "pccl-20.el" "pccl.el" "pces-20.el" "pces-e20.el"
+      "pces.el" "pcustom.el" "poe.el" "poem-e20.el" "poem-e20_3.el"
+      "poem.el" "product.el" "pym.el" "richtext.el" "static.el"
+    ];
+    meta = {
+      description = "A Portable Emacs Library";
+      license = gpl3Plus; # probably
+    };
+  };
+
+  async = melpaBuild rec {
+    pname   = "async";
+    version = "1.2";
+    src = fetchFromGitHub {
+      owner  = "jwiegley";
+      repo   = "emacs-async";
+      rev    = "v${version}";
+      sha256 = "1j6mbvvbnm2m1gpsy9ipxiv76b684nn57yssbqdyiwyy499cma6q";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  auctex = melpaBuild rec {
+    pname   = "auctex";
+    version = "11.87.7";
+    src = fetchurl {
+      url    = "http://elpa.gnu.org/packages/${pname}-${version}.tar";
+      sha256 = "07bhw8zc3d1f2basjy80njmxpsp4f70kg3ynkch9ghlai3mm2b7n";
+    };
+    buildPhase = ''
+      cp $src ${pname}-${version}.tar
+    '';
+    meta = { license = gpl3Plus; };
+  };
+
+  auto-complete = melpaBuild rec {
+    pname = "auto-complete";
+    version = "1.4.0";
+    src = fetchFromGitHub {
+      owner = pname;
+      repo  = pname;
+      rev   = "v${version}";
+      sha256 = "050lb8qjq7ra35mqp6j6qkwbvq5zj3yhz73aym5kf1vjd42rmjcw";
+    };
+    packageRequires = [ popup ];
+    meta = {
+      description = "Auto-complete extension for Emacs";
+      homepage = http://cx4a.org/software/auto-complete/;
+      license = gpl3Plus;
+      platforms = lib.platforms.all;
+    };
+  };
+
+  bind-key = melpaBuild {
+    pname   = "bind-key";
+    version = "20150317";
+    src = fetchFromGitHub {
+      owner  = "jwiegley";
+      repo   = "use-package";
+      rev    = "b836266ddfbc835efdb327ecb389ff9e081d7c55";
+      sha256 = "187wnqqm5g43cg8b6a9rbd9ncqad5fhjb96wjszbinjh1mjxyh7i";
+    };
+    files = [ "bind-key.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  browse-kill-ring = melpaBuild rec {
+    pname   = "browse-kill-ring";
+    version = "20140104";
+    src = fetchFromGitHub {
+      owner  = pname;
+      repo   = pname;
+      rev    = "f81ca5f14479fa9e938f89bf8f6baa3c4bdfb755";
+      sha256 = "149g4qs5dqy6yzdj5smb39id5f72bz64qfv5bjf3ssvhwl2rfba8";
+    };
+    meta = {
+      description = "Interactively insert items from Emacs kill-ring";
+      homepage = https://github.com/browse-kill-ring/browse-kill-ring/;
+      license = gpl2Plus;
+    };
+  };
+
+  caml = melpaBuild rec {
+    pname   = "caml";
+    version = "4.2.1"; # TODO: emacs doesn't seem to like 02 as a version component..
+    src = fetchFromGitHub {
+      owner  = "ocaml";
+      repo   = "ocaml";
+      rev    = "4.02.1";
+      sha256 = "05lms9qhcnwgi7k034kiiic58c9da22r32mpak0ahmvp5fylvjpb";
+    };
+    fileSpecs = [ "emacs/*.el" ];
+    configurePhase = "true";
+    meta = { license = gpl2Plus; };
+  };
+
+  change-inner = melpaBuild rec {
+    pname   = "change-inner";
+    version = "20130208";
+    src = fetchFromGitHub {
+      owner  = "magnars";
+      repo   = "${pname}.el";
+      rev    = "6374b745ee1fd0302ad8596cdb7aca1bef33a730";
+      sha256 = "1fv8630bqbmfr56zai08f1q4dywksmghhm70084bz4vbs6rzdsbq";
+    };
+    packageRequires = [ expand-region ];
+    meta = { license = gpl3Plus; };
+  };
+
+  circe = melpaBuild rec {
+    pname   = "circe";
+    version = "1.5";
+    src = fetchFromGitHub {
+      owner  = "jorgenschaefer";
+      repo   = "circe";
+      rev    = "v${version}";
+      sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24";
+    };
+    packageRequires = [ lcs lui ];
+    fileSpecs = [ "lisp/circe*.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  company = melpaBuild rec {
+    pname   = "company";
+    version = "0.8.12";
+    src = fetchFromGitHub {
+      owner  = "company-mode";
+      repo   = "company-mode";
+      rev    = version;
+      sha256 = "08rrjfp2amgya1hswjz3vd5ja6lg2nfmm7454p0h1naz00hlmmw0";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  company-ghc = melpaBuild rec {
+    pname   = "company-ghc";
+    version = "0.1.10";
+    src = fetchFromGitHub {
+      owner  = "iquiw";
+      repo   = "company-ghc";
+      rev    = "v${version}";
+      sha256 = "0lzwmjf91fxhkknk4z9m2v6whk1fzpa7n1rspp61lwmyh5gakj3x";
+    };
+    packageRequires = [ company ghc-mod ];
+    meta = {
+      description = "company-mode completion backend for haskell-mode via ghc-mod";
+      license = gpl3Plus;
+    };
+  };
+
+  dash = melpaBuild rec {
+    pname   = "dash";
+    version = "2.9.0";
+    src = fetchFromGitHub {
+      owner  = "magnars";
+      repo   = "${pname}.el";
+      rev    = version;
+      sha256 = "1lg31s8y6ljsz6ps765ia5px39wim626xy8fbc4jpk8fym1jh7ay";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  deferred = melpaBuild rec {
+    version = "0.3.2";
+    pname = "deferred";
+
+    src = fetchFromGitHub {
+      owner = "kiwanami";
+      repo = "emacs-${pname}";
+      rev = "896d4b53210289afe489e1ee7db4e12cb9248109";
+      sha256 = "0ysahdyvlg240dynwn23kk2d9kb432zh2skr1gydm3rxwn6f18r0";
+    };
+
+    meta = {
+      description = "Simple asynchronous functions for emacs-lisp";
+      longDescription = ''
+        deferred.el provides facilities to manage asynchronous tasks.
+        The API and implementations were translated from JSDeferred (by cho45)
+         and Mochikit.Async (by Bob Ippolito) in JavaScript.
+      '';
+      homepage =  https://github.com/kiwanami/emacs-deferred;
+      license = gpl3Plus;
+    };
+  };
+
+  diminish = melpaBuild rec {
+    pname   = "diminish";
+    version = "0.44";
+    src = fetchFromGitHub {
+      owner  = "emacsmirror";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0hshw7z5f8pqxvgxw74kbj6nvprsgfvy45fl854xarnkvqcara09";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  epl = melpaBuild rec {
+    pname   = "epl";
+    version = "20140823";
+    src = fetchFromGitHub {
+      owner  = "cask";
+      repo   = pname;
+      rev    = "63c78c08e345455f3d4daa844fdc551a2c18024e";
+      sha256 = "04a2aq8dj2cmy77vw142wcmnjvqdbdsp6z0psrzz2qw0b0am03li";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  evil-god-state = melpaBuild rec {
+    pname   = "evil-god-state";
+    version = "20140830";
+    src = fetchFromGitHub {
+      owner  = "gridaphobe";
+      repo   = pname;
+      rev    = "234a9b6f500ece89c3dfb5c1df5baef6963e4566";
+      sha256 = "16v6dpw1hibrkf9hga88gv5axvp1pajd67brnh5h4wpdy9qvwgyy";
+    };
+    packageRequires = [ evil god-mode ];
+    meta = { license = gpl3Plus; };
+  };
+
+  evil-indent-textobject = melpaBuild rec {
+    pname   = "evil-indent-textobject";
+    version = "0.2";
+    src = fetchFromGitHub {
+      owner  = "cofi";
+      repo   = pname;
+      rev    = "70a1154a531b7cfdbb9a31d6922482791e20a3a7";
+      sha256 = "0nghisnc49ivh56mddfdlcbqv3y2vqzjvkpgwv3zp80ga6ghvdmz";
+    };
+    packageRequires = [ evil ];
+    meta = {
+      description = "Textobject for evil based on indentation";
+      license = gpl2Plus;
+    };
+  };
+
+  evil-leader = melpaBuild rec {
+    pname   = "evil-leader";
+    version = "0.4.3";
+    src = fetchFromGitHub {
+      owner  = "cofi";
+      repo   = pname;
+      rev    = version;
+      sha256 = "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5";
+    };
+    packageRequires = [ evil ];
+    meta = {
+      description = "<leader> key for evil";
+      license = gpl3Plus;
+    };
+  };
+
+  evil-surround = melpaBuild rec {
+    pname   = "evil-surround";
+    version = "20140616";
+    src = fetchFromGitHub {
+      owner  = "timcharper";
+      repo   = pname;
+      rev    = "71f380b6b6ed38f739c0a4740b3d6de0c52f915a";
+      sha256 = "0wrmlmgr4mwxlmmh8blplddri2lpk4g8k3l1vpb5c6a975420qvn";
+    };
+    packageRequires = [ evil ];
+    meta = {
+      description = "surround.vim emulation for Emacs evil mode";
+      license = gpl3Plus;
+    };
+  };
+
+  evil = melpaBuild {
+    pname   = "evil";
+    version = "20141020";
+    src = fetchgit {
+      url = "https://github.com/emacsmirror/evil.git";
+      rev = "999ec15587f85100311c031aa8efb5d50c35afe4";
+      sha256 = "5f67643d19a31172e68f2f195959d33bcd26c2786eb71e67eb27eb52f5bf387a";
+    };
+    packageRequires = [ goto-chg undo-tree ];
+    meta = {
+      description = "Extensible vi layer for Emacs";
+      license = gpl3Plus;
+    };
+  };
+
+  exec-path-from-shell = melpaBuild rec {
+    pname   = "exec-path-from-shell";
+    version = "20141022";
+    src = fetchFromGitHub {
+      owner  = "purcell";
+      repo   = pname;
+      rev    = "e4af0e9b44738e7474c89ed895200b42e6541515";
+      sha256 = "0lxikiqf1jik88lf889q4f4f8kdgg3npciz298x605nhbfd5snbd";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  expand-region = melpaBuild rec {
+    pname   = "expand-region";
+    version = "20141012";
+    src = fetchFromGitHub {
+      owner  = "magnars";
+      repo   = "${pname}.el";
+      rev    = "fa413e07c97997d950c92d6012f5442b5c3cee78";
+      sha256 = "04k0518wfy72wpzsswmncnhd372fxa0r8nbfhmbyfmns8n7sr045";
+    };
+    meta = {
+      description = "Increases the selected region by semantic units in Emacs";
+      license = gpl3Plus;
+    };
+  };
+
+  flim = melpaBuild rec {
+    pname = "flim";
+    version = "1.14.9"; # 20141216
+    src = fetchFromGitHub {
+      owner  = "wanderlust";
+      repo   = pname;
+      rev    = "488a4d70fb4ae57bdd30dc75c2d75579894e28a2";
+      sha256 = "178fhpbyffksr4v3m8jmx4rx2vqyz23qhbyvic5afabxi6lahjfs";
+    };
+    packageRequires = [ apel ];
+    meta = {
+      description = "Email message encoding library for Emacs";
+      license = gpl3Plus; # probably
+    };
+  };
+
+  flycheck-pos-tip = melpaBuild rec {
+    pname   = "flycheck-pos-tip";
+    version = "20140813";
+    src = fetchFromGitHub {
+      owner  = "flycheck";
+      repo   = pname;
+      rev    = "5b3a203bbdb03e4f48d1654efecd71f44376e199";
+      sha256 = "0b4x24aq0jh4j4bjv0fqyaz6hzh3gqf57k9763jj9rl32cc3dpnp";
+    };
+    packageRequires = [ flycheck popup ];
+    meta = { license = gpl3Plus; };
+  };
+
+  flycheck = melpaBuild rec {
+    pname   = "flycheck";
+    version = "0.20";
+    src = fetchFromGitHub {
+      owner  = pname;
+      repo   = pname;
+      rev    = version;
+      sha256 = "0cq7y7ssm6phvx5pfv2yqq4j0yqmm0lhjav7v4a8ql7094cd790a";
+    };
+    packageRequires = [ dash pkg-info ];
+    meta = { license = gpl3Plus; };
+  };
+
+  ghc-mod = melpaBuild rec {
+    pname = "ghc";
+    version = external.ghc-mod.version;
+    src = external.ghc-mod.src;
+    propagatedUserEnvPkgs = [ external.ghc-mod ];
+    fileSpecs = [ "elisp/*.el" ];
+    meta = { license = bsd3; };
+  };
+
+  git-auto-commit-mode = melpaBuild rec {
+    pname = "git-auto-commit-mode";
+    version = "4.4.0";
+    src = fetchFromGitHub {
+      owner  = "ryuslash";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh";
+    };
+    meta = {
+      description = "Automatically commit to git after each save";
+      license = gpl3Plus;
+    };
+  };
+
+  git-commit-mode = melpaBuild rec {
+    pname = "git-commit-mode";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "git-modes";
+      rev    = version;
+      sha256 = "12a1xs3w2dp1a55qhc01dwjkavklgfqnn3yw85dhi4jdz8r8j7m0";
+    };
+    files = [ "git-commit-mode.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  git-rebase-mode = melpaBuild rec {
+    pname = "git-rebase-mode";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "git-modes";
+      rev    = version;
+      sha256 = "12a1xs3w2dp1a55qhc01dwjkavklgfqnn3yw85dhi4jdz8r8j7m0";
+    };
+    files = [ "git-rebase-mode.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  git-timemachine = melpaBuild rec {
+    pname = "git-timemachine";
+    version = "2.3";
+    src = fetchFromGitHub {
+      owner  = "pidu";
+      repo   = pname;
+      rev    = version;
+      sha256 = "1lm6rgbzbxnwfn48xr6bg05lb716grfr4nqm8lvjm64nabh5y9bh";
+    };
+    meta = {
+      description = "Step through historic revisions of git controlled files";
+      license = gpl3Plus;
+    };
+  };
+
+  gitattributes-mode = melpaBuild rec {
+    pname = "gitattributes-mode";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "git-modes";
+      rev    = version;
+      sha256 = "12a1xs3w2dp1a55qhc01dwjkavklgfqnn3yw85dhi4jdz8r8j7m0";
+    };
+    files = [ "gitattributes-mode.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  gitconfig-mode = melpaBuild rec {
+    pname = "gitconfig-mode";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "git-modes";
+      rev    = version;
+      sha256 = "12a1xs3w2dp1a55qhc01dwjkavklgfqnn3yw85dhi4jdz8r8j7m0";
+    };
+    files = [ "gitconfig-mode.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  gitignore-mode = melpaBuild rec {
+    pname = "gitignore-mode";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "git-modes";
+      rev    = version;
+      sha256 = "12a1xs3w2dp1a55qhc01dwjkavklgfqnn3yw85dhi4jdz8r8j7m0";
+    };
+    files = [ "gitignore-mode.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  gntp = melpaBuild rec {
+    pname = "gntp";
+    version = "0.1";
+    src = fetchFromGitHub {
+      owner = "tekai";
+      repo  = "${pname}.el";
+      rev   = "v${version}";
+      sha256 = "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a";
+    };
+    meta = { license = gpl2Plus; };
+  };
+
+  gnus = melpaBuild rec {
+    pname   = "gnus";
+    version = "20140501";
+    src = fetchgit {
+      url = "http://git.gnus.org/gnus.git";
+      rev = "4228cffcb7afb77cf39678e4a8988a57753502a5";
+      sha256 = "0qd0wpxkz47irxghmdpa524c9626164p8vgqs26wlpbdwyvm64a0";
+    };
+    fileSpecs = [ "lisp/*.el" "texi/*.texi" ];
+    preBuild = ''
+      (cd lisp && make gnus-load.el)
+    '';
+    meta = { license = gpl3Plus; };
+  };
+
+  god-mode = melpaBuild rec {
+    pname   = "god-mode";
+    version = "20140811";
+    src = fetchFromGitHub {
+      owner  = "chrisdone";
+      repo   = pname;
+      rev    = "6b7ae259a58ca1d7776aa4eca9f1092e4c0033e6";
+      sha256 = "1amr98nq82g2d3f3f5wlqm9g38j64avygnsi9rrlbfqz4f71vq7x";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  goto-chg = melpaBuild rec {
+    pname   = "goto-chg";
+    version = "1.6";
+    src = fetchgit {
+      url = "https://gitorious.org/evil/evil.git";
+      rev = "999ec15587f85100311c031aa8efb5d50c35afe4";
+      sha256 = "5f67643d19a31172e68f2f195959d33bcd26c2786eb71e67eb27eb52f5bf387a";
+    };
+    files = [ "lib/goto-chg.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  haskell-mode = melpaBuild rec {
+    pname   = "haskell-mode";
+    version = "13.12";
+    src = fetchFromGitHub {
+      owner  = "haskell";
+      repo   = pname;
+      rev    = "v${version}";
+      sha256 = "1l8sby2626hpp0li23mic3qq8w7jirsp1hd08hkx2z84gvz4j6fz";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  helm-swoop = melpaBuild rec {
+    pname   = "helm-swoop";
+    version = "20141224";
+    src = fetchFromGitHub {
+      owner  = "ShingoFukuyama";
+      repo   = pname;
+      rev    = "06a251f7d7fce2a5719e0862e5855972cd8ab1ae";
+      sha256 = "0nq33ldhbvfbm6jnsxqdf3vwaqrsr2gprkzll081gcyl2s1x0l2m";
+    };
+    packageRequires = [ helm ];
+    meta = { license = gpl3Plus; };
+  };
+
+  helm = melpaBuild rec {
+    pname   = "helm";
+    version = "20150105";
+    src = fetchFromGitHub {
+      owner  = "emacs-helm";
+      repo   = pname;
+      rev    = "e5608ad86e7ca72446a4b1aa0faf604200ffe895";
+      sha256 = "0n2kr6pyzcsi8pq6faxz2y8kicz1gmvj98fzzlq3a107dqqp25ay";
+    };
+    packageRequires = [ async ];
+    meta = { license = gpl3Plus; };
+  };
+
+  hi2 = melpaBuild rec {
+    pname   = "hi2";
+    version = "1.0";
+    src = fetchFromGitHub {
+      owner  = "nilcons";
+      repo   = pname;
+      rev    = version;
+      sha256 = "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  ibuffer-vc = melpaBuild rec {
+    pname   = "ibuffer-vc";
+    version = "0.10";
+    src = fetchFromGitHub {
+      owner  = "purcell";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0bqdi5w120256g74k0j4jj81x804x1gcg4dxa74w3mb6fl5xlvs8";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  ido-ubiquitous = melpaBuild rec {
+    pname   = "ido-ubiquitous";
+    version = "2.17";
+    src = fetchFromGitHub {
+      owner  = "DarwinAwardWinner";
+      repo   = pname;
+      rev    = "323e4cddc05d5a4546c1b64132b2b1e9f8896452";
+      sha256 = "0wdjz3cqzrxhrk68g5gyvc9j2rb6f4yw00xbjgw9ldwlhmkwy5ja";
+    };
+    meta = {
+      description = "Does what you expected ido-everywhere to do in Emacs";
+      homepage = https://github.com/DarwinAwardWinner/ido-ubiquitous/;
+      license = gpl3Plus;
+    };
+  };
+
+  idris-mode = melpaBuild rec {
+    pname   = "idris-mode";
+    version = "0.9.15";
+    src = fetchFromGitHub {
+      owner  = "idris-hackers";
+      repo   = "idris-mode";
+      rev    = version;
+      sha256 = "00pkgk1zxan89i8alsa2dpa9ls7imqk5zb1kbjwzrlbr0gk4smdb";
+    };
+    packageRequires = [ flycheck ];
+    meta = { license = gpl3Plus; };
+  };
+
+  lcs = melpaBuild rec {
+    pname   = "lcs";
+    version = "1.5";
+    src = fetchFromGitHub {
+      owner  = "jorgenschaefer";
+      repo   = "circe";
+      rev    = "v${version}";
+      sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24";
+    };
+    fileSpecs = [ "lisp/lcs*.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  log4e = melpaBuild rec {
+    pname = "log4e";
+    version = "0.3.0";
+    src = fetchFromGitHub {
+      owner = "aki2o";
+      repo  = pname;
+      rev   = "v${version}";
+      sha256 = "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022";
+    };
+    meta = { license = gpl2Plus; };
+  };
+
+  lui = melpaBuild rec {
+    pname   = "lui";
+    version = "1.5";
+    src = fetchFromGitHub {
+      owner  = "jorgenschaefer";
+      repo   = "circe";
+      rev    = "v${version}";
+      sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24";
+    };
+    packageRequires = [ tracking ];
+    fileSpecs = [ "lisp/lui*.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  magit = melpaBuild rec {
+    pname   = "magit";
+    version = "1.4.0";
+    src = fetchFromGitHub {
+      owner  = "magit";
+      repo   = "magit";
+      rev    = version;
+      sha256 = "0x8bvfw47bfpzsv9yr98aays4idbbwvnkp0pag1q78gcn9h2k9vi";
+    };
+    packageRequires = [ git-commit-mode git-rebase-mode ];
+    meta = { license = gpl3Plus; };
+  };
+
+  markdown-mode = melpaBuild rec {
+    pname   = "markdown-mode";
+    version = "2.0";
+    src = fetchFromGitHub {
+      owner  = "defunkt";
+      repo   = pname;
+      rev    = "v${version}";
+      sha256 = "1l2w0j9xl8pipz61426s79jq2yns42vjvysc6yjc29kbsnhalj29";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  monokai-theme = melpaBuild rec {
+    pname   = "monokai-theme";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner  = "oneKelvinSmith";
+      repo   = "monokai-emacs";
+      rev    = "v${version}";
+      sha256 = "02w7k4s4698p4adjy4a36na28sb1s2zw4xsjs7p2hv9iiw9kmyvz";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode {};
+
+  org-plus-contrib = melpaBuild rec {
+    pname   = "org-plus-contrib";
+    version = "20150406";
+    src = fetchurl {
+      url    = "http://orgmode.org/elpa/${pname}-${version}.tar";
+      sha256 = "1ny2myg4rm75ab2gl5rqrwy7h53q0vv18df8gk3zv13kljj76c6i";
+    };
+    buildPhase = ''
+      cp $src ${pname}-${version}.tar
+    '';
+    meta = { license = gpl3Plus; };
+  };
+
+  org-trello = melpaBuild rec {
+    pname = "org-trello";
+    version = "0.6.9.3";
+    src = fetchFromGitHub {
+      owner = "org-trello";
+      repo = pname;
+      rev = "f1e1401a373dd492eee49fb131b1cd66b3a9ac37";
+      sha256 = "003gdh8rgdl3k8h20wgbciqyacyqr64w1wfdqvwm9qdz414q5yj3";
+    };
+    packageRequires = [ request-deferred deferred dash s ];
+    files = [ "org-trello-*.el" ];
+    meta = {
+      description = "Org minor mode - 2-way sync org & trello";
+      longDescription = ''
+        Org-trello is an emacs minor mode that extends org-mode with
+        Trello abilities.
+      '';
+      homepage = https://org-trello.github.io;
+      license = gpl3Plus;
+    };
+  };
+
+  pkg-info = melpaBuild rec {
+    pname   = "pkg-info";
+    version = "20140610";
+    src = fetchFromGitHub {
+      owner  = "lunaryorn";
+      repo   = "${pname}.el";
+      rev    = "475cdeb0b8d44f9854e506c429eeb445787014ec";
+      sha256 = "0x4nz54f2shgcw3gx66d265vxwdpdirn64gzii8dpxhsi7v86n0p";
+    };
+    packageRequires = [ epl ];
+    meta = { license = gpl3Plus; };
+  };
+
+  popup = melpaBuild rec {
+    pname   = "popup";
+    version = "0.5.0";
+    src = fetchFromGitHub {
+      owner  = "auto-complete";
+      repo   = "${pname}-el";
+      rev    = "v${version}";
+      sha256 = "0836ayyz1syvd9ry97ya06l8mpr88c6xbgb4d98szj6iwbypcj7b";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  projectile = melpaBuild rec {
+    pname   = "projectile";
+    version = "20141020";
+    src = fetchFromGitHub {
+      owner  = "bbatsov";
+      repo   = pname;
+      rev    = "13580d83374e0c17c55b3a680b816dfae407657e";
+      sha256 = "10c28h2g53sg68lwamhak0shdhh26h5xaipipz3n4281sr1fwg58";
+    };
+    packageRequires = [ dash helm s pkg-info epl ];
+    meta = { license = gpl3Plus; };
+  };
+
+  rainbow-delimiters = melpaBuild rec {
+    pname = "rainbow-delimiters";
+    version = "2.1.1";
+    src = fetchFromGitHub {
+      owner = "Fanael";
+      repo = pname;
+      rev = version;
+      sha256 = "0gxc8j5a14bc9mp43cbcz41ipc0z1yvmypg52dnl8hadirry20gd";
+    };
+    meta = {
+      description = "Highlight delimiters with colors according to their depth";
+      license = gpl3Plus;
+    };
+  };
+
+  request = melpaBuild rec {
+    pname = "request";
+    version = "0.2.0";
+
+    src = fetchFromGitHub {
+      owner = "tkf";
+      repo = "emacs-${pname}";
+      rev = "adf7de452f9914406bfb693541f1d280093c4efd";
+      sha256 = "0dja4g43zfjbxqvz2cgivgq5sfm6fz1563qgrp4yxknl7bdggb92";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Easy HTTP request for Emacs Lisp";
+      longDescription = ''
+        Request.el is a HTTP request library with multiple backends. It supports
+        url.el which is shipped with Emacs and curl command line program. User
+        can use curl when s/he has it, as curl is more reliable than url.el.
+        Library author can use request.el to avoid imposing external dependencies
+        such as curl to users while giving richer experience for users who have curl.
+      '';
+      homepage = https://github.com/tkf/emacs-request;
+      license = gpl3Plus;
+    };
+  };
+
+  request-deferred = melpaBuild rec {
+    pname = "request-deferred";
+    version = "0.2.0";
+
+    src = fetchFromGitHub {
+      owner = "tkf";
+      repo = "emacs-request";
+      rev = "adf7de452f9914406bfb693541f1d280093c4efd";
+      sha256 = "0dja4g43zfjbxqvz2cgivgq5sfm6fz1563qgrp4yxknl7bdggb92";
+    };
+
+    packageRequires = [ request deferred ];
+
+    meta = with stdenv.lib; {
+      description = "Easy HTTP request for Emacs Lisp";
+      longDescription = ''
+        Request.el is a HTTP request library with multiple backends. It supports
+        url.el which is shipped with Emacs and curl command line program. User
+        can use curl when s/he has it, as curl is more reliable than url.el.
+        Library author can use request.el to avoid imposing external dependencies
+        such as curl to users while giving richer experience for users who have curl.
+      '';
+      homepage = https://github.com/tkf/emacs-request;
+      license = gpl3Plus;
+    };
+  };
+
+  rich-minority = melpaBuild rec {
+    pname   = "rich-minority";
+    version = "0.1.1";
+    src = fetchFromGitHub {
+      owner  = "Bruce-Connor";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0kvhy4mgs9llihwsb1a9n5a85xzjiyiyawxnz0axy2bvwcxnp20k";
+    };
+    packageRequires = [ dash ];
+    meta = { license = gpl3Plus; };
+  };
+
+  s = melpaBuild rec {
+    pname   = "s";
+    version = "20140910";
+    src = fetchFromGitHub {
+      owner  = "magnars";
+      repo   = "${pname}.el";
+      rev    = "1f85b5112f3f68169ddaa2911fcfa030f979eb4d";
+      sha256 = "9d871ea84f98c51099528a03eddf47218cf70f1431d4c35c19c977d9e73d421f";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  semi = melpaBuild rec {
+    pname = "semi";
+    version = "1.14.7"; # 20150203
+    src = fetchFromGitHub {
+      owner  = "wanderlust";
+      repo   = pname;
+      rev    = "9976269556c5bcc021e4edf1b0e1accd39929528";
+      sha256 = "1g1xg57pz4msd3f998af5gq28qhmvi410faygzspra6y6ygaka68";
+    };
+    packageRequires = [ apel flim ];
+    meta = {
+      description = "MIME library for Emacs";
+      license = gpl3Plus; # probably
+    };
+  };
+
+  shorten = melpaBuild rec {
+    pname   = "shorten";
+    version = "1.5";
+    src = fetchFromGitHub {
+      owner  = "jorgenschaefer";
+      repo   = "circe";
+      rev    = "v${version}";
+      sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24";
+    };
+    fileSpecs = [ "lisp/shorten*.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  smart-mode-line = melpaBuild rec {
+    pname   = "smart-mode-line";
+    version = "2.6";
+    src = fetchFromGitHub {
+      owner  = "Bruce-Connor";
+      repo   = pname;
+      rev    = version;
+      sha256 = "17nav2jbvbd13xzgp29x396mc617n2dh6whjk4wnyvsyv7r0s9f6";
+    };
+    packageRequires = [ dash rich-minority ];
+    meta = { license = gpl3Plus; };
+  };
+
+  smartparens = melpaBuild rec {
+    pname   = "smartparens";
+    version = "1.6.2";
+    src = fetchFromGitHub {
+      owner  = "Fuco1";
+      repo   = pname;
+      rev    = version;
+      sha256 = "16pzd740vd1r3qfmxia2ibiarinm6xpja0mjv3nni5dis5s4r9gc";
+    };
+    packageRequires = [ dash ];
+    meta = { license = gpl3Plus; };
+  };
+
+  smex = melpaBuild rec {
+    pname = "smex";
+    version = "20141210";
+    src = fetchFromGitHub {
+      owner  = "nonsequitur";
+      repo   = pname;
+      rev    = "aff8d4485139ac28f1c7e62912c0d0d480995831";
+      sha256 = "0017f1ji7rxad2n49dhn5g0pmw6lmw80cqk6dynszizj46xpbqfp";
+    };
+    meta = {
+      description = "M-x enhancement for Emacs build on top of Ido";
+      homepage = https://github.com/nonsequitur/smex/;
+      license = emacs.meta.license; # should be "same as Emacs"
+    };
+  };
+
+  structured-haskell-mode = melpaBuild rec {
+    pname = "shm";
+    version = external.structured-haskell-mode.version;
+    src = external.structured-haskell-mode.src;
+    packageRequires = [ haskell-mode ];
+    fileSpecs = [ "elisp/*.el" ];
+
+    meta = {
+      homepage = "https://github.com/chrisdone/structured-haskell-mode";
+      description = "Structured editing Emacs mode for Haskell";
+      license = bsd3;
+      platforms = external.structured-haskell-mode.meta.platforms;
+    };
+  };
+
+  switch-window = melpaBuild rec {
+    pname   = "switch-window";
+    version = "20140919";
+    src = fetchFromGitHub {
+      owner  = "dimitri";
+      repo   = pname;
+      rev    = "3ffbe68e584f811e891f96afa1de15e0d9c1ebb5";
+      sha256 = "09221128a0f55a575ed9addb3a435cfe01ab6bdd0cca5d589ccd37de61ceccbd";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  tracking = melpaBuild rec {
+    pname   = "tracking";
+    version = "1.5";
+    src = fetchFromGitHub {
+      owner  = "jorgenschaefer";
+      repo   = "circe";
+      rev    = "v${version}";
+      sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24";
+    };
+    packageRequires = [ shorten ];
+    fileSpecs = [ "lisp/tracking*.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  tuareg = melpaBuild rec {
+    pname = "tuareg";
+    version = "2.0.9";
+    src = fetchFromGitHub {
+      owner  = "ocaml";
+      repo   = pname;
+      rev    = version;
+      sha256 = "1j2smhqrwy0zydhbyjkpnwzq05fgfa85kc0d9kzwq0mppdndspp4";
+    };
+    packageRequires = [ caml ];
+    meta = { license = gpl3Plus; };
+  };
+
+  undo-tree = melpaBuild rec {
+    pname   = "undo-tree";
+    version = "0.6.4";
+    src = fetchgit {
+      url    = "http://www.dr-qubit.org/git/${pname}.git";
+      rev    = "a3e81b682053a81e082139300ef0a913a7a610a2";
+      sha256 = "1qla7njkb7gx5aj87i8x6ni8jfk1k78ivwfiiws3gpbnyiydpx8y";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  use-package = melpaBuild rec {
+    pname   = "use-package";
+    version = "20150317";
+    src = fetchFromGitHub {
+      owner  = "jwiegley";
+      repo   = pname;
+      rev    = "b836266ddfbc835efdb327ecb389ff9e081d7c55";
+      sha256 = "187wnqqm5g43cg8b6a9rbd9ncqad5fhjb96wjszbinjh1mjxyh7i";
+    };
+    packageRequires = [ bind-key diminish ];
+    files = [ "use-package.el" ];
+    meta = { license = gpl3Plus; };
+  };
+
+  volatile-highlights = melpaBuild rec {
+    pname   = "volatile-highlights";
+    version = "1.11";
+    src = fetchFromGitHub {
+      owner  = "k-talo";
+      repo   = "${pname}.el";
+      rev    = "fb2abc2d4d4051a9a6b7c8de2fe7564161f01f24";
+      sha256 = "1v0chqj5jir4685jd8ahw86g9zdmi6xd05wmzhyw20rbk924fcqf";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  wanderlust = melpaBuild rec {
+    pname = "wanderlust";
+    version = "2.15.9"; # 20150301
+    src = fetchFromGitHub {
+      owner  = pname;
+      repo   = pname;
+      rev    = "13fb4f6519490d4ac7138f3bcf76707654348071";
+      sha256 = "1l48xfcwkm205prspa1rns6lqfizik5gpdwmlfgyb5mabm9x53zn";
+    };
+    packageRequires = [ apel flim semi ];
+    fileSpecs = [
+      "doc/wl.texi" "doc/wl-ja.texi"
+      "elmo/*.el" "wl/*.el"
+      "etc/icons"
+    ];
+    meta = {
+      description = "E-Mail client for Emacs";
+      license = gpl3Plus; # probably
+    };
+  };
+
+  weechat = melpaBuild rec {
+    pname   = "weechat.el";
+    version = "0.2.2";
+    src = fetchFromGitHub {
+      owner  = "the-kenny";
+      repo   = pname;
+      rev    = version;
+      sha256 = "0f90m2s40jish4wjwfpmbgw024r7n2l5b9q9wr6rd3vdcwks3mcl";
+    };
+    postPatch = lib.optionalString (!stdenv.isLinux) ''
+      rm weechat-sauron.el weechat-secrets.el
+    '';
+    packageRequires = [ s ];
+    meta = { license = gpl3Plus; };
+  };
+
+  wgrep = melpaBuild rec {
+    pname   = "wgrep";
+    version = "20141017";
+    src = fetchFromGitHub {
+      owner  = "mhayashi1120";
+      repo   = "Emacs-wgrep";
+      rev    = "7ef26c51feaef8a5ec0929737130ab8ba326983c";
+      sha256 = "075z0glain0dp56d0cp468y5y88wn82ab26aapsrdzq8hmlshwn4";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+  zenburn-theme = melpaBuild rec {
+    pname   = "zenburn-theme";
+    version = "2.2";
+    src = fetchFromGitHub {
+      owner  = "bbatsov";
+      repo   = "zenburn-emacs";
+      rev    = "v${version}";
+      sha256 = "1zspqpwgyv3969irg8p7zj3g4hww4bmnlvx33bvjyvvv5c4mg5wv";
+    };
+    meta = { license = gpl3Plus; };
+  };
+
+
+}; in self