From 76a501acdb6b38689aa24e0c331d83149499aabc Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Tue, 17 Feb 2015 15:06:27 -0800 Subject: [PATCH] reorganize emacs packages and add some meta info --- .../editors/emacs-24/packages/melpa.nix | 104 ----- pkgs/build-support/melpa/default.nix | 104 +++++ .../melpa}/melpa2nix.el | 0 .../melpa}/setup-hook.sh | 0 pkgs/top-level/all-packages.nix | 2 +- .../emacs-melpa-packages.nix} | 416 ++++++++++-------- 6 files changed, 341 insertions(+), 285 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-24/packages/melpa.nix create mode 100644 pkgs/build-support/melpa/default.nix rename pkgs/{applications/editors/emacs-24/packages => build-support/melpa}/melpa2nix.el (100%) rename pkgs/{applications/editors/emacs-24/packages => build-support/melpa}/setup-hook.sh (100%) rename pkgs/{applications/editors/emacs-24/packages/default.nix => top-level/emacs-melpa-packages.nix} (71%) diff --git a/pkgs/applications/editors/emacs-24/packages/melpa.nix b/pkgs/applications/editors/emacs-24/packages/melpa.nix deleted file mode 100644 index 23db8f1c5a31..000000000000 --- a/pkgs/applications/editors/emacs-24/packages/melpa.nix +++ /dev/null @@ -1,104 +0,0 @@ -# generic builder for Emacs packages - -{ stdenv, fetchurl, emacs, texinfo -, extension ? (self : super : {}) -}: - -let - enableFeature = stdenv.lib.enableFeature; - versionOlder = stdenv.lib.versionOlder; - optional = stdenv.lib.optional; - optionals = stdenv.lib.optionals; - optionalString = stdenv.lib.optionalString; - filter = stdenv.lib.filter; - - packageBuild = fetchurl { - url = https://raw.githubusercontent.com/milkypostman/melpa/12a862e5c5c62ce627dab83d7cf2cca6e8b56c47/package-build.el; - sha256 = "1nviyyprypz7nmam9rwli4yv3kxh170glfbznryrp4czxkrjjdhk"; - }; - -in - -{ - mkDerivation = - args : # arguments for the individual package, can modify the defaults - let # Stuff happening after the user preferences have been processed. We remove - # internal attributes and strip null elements from the dependency lists, all - # in the interest of keeping hashes stable. - postprocess = - x : x // { - buildInputs = filter (y : ! (y == null)) x.buildInputs; - propagatedBuildInputs = filter (y : ! (y == null)) x.propagatedBuildInputs; - propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs; - doCheck = x.doCheck; - }; - - defaults = - self : { # self is the final version of the attribute set - - # pname should be defined by the client to be the package basename - # version should be defined by the client to be the package version - - # fname is the internal full name of the package - fname = "${self.pname}-${self.version}"; - - # name is the external full name of the package; usually we prefix - # all packages with emacs- to avoid name clashes for libraries; - # if that is not desired (for applications), name can be set to - # fname. - name = "emacs-${self.pname}-${self.version}"; - - - buildInputs = [emacs texinfo] ++ self.packageRequires; - - propagatedBuildInputs = self.packageRequires; - - propagatedUserEnvPkgs = self.packageRequires; - - packageRequires = []; - - doCheck = false; - - files = []; - - setupHook = ./setup-hook.sh; - - fileSpecs = [ "*.el" "*.el.in" "dir" - "*.info" "*.texi" "*.texinfo" - "doc/dir" "doc/*.info" "doc/*.texi" "doc/*.texinfo" - ]; - - targets = stdenv.lib.concatStringsSep " " - (if self.files == [] - then self.fileSpecs - else self.files); - - buildPhase = '' - eval "$preBuild" - - emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \ - -f melpa2nix-build-package \ - ${self.pname} ${self.version} ${self.targets} - - eval "$postBuild" - ''; - - installPhase = '' - eval "$preInstall" - - emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \ - -f melpa2nix-install-package \ - ${self.fname}.* $out/share/emacs/site-lisp/elpa - - eval "$postInstall" - ''; - - # We inherit stdenv and emacs so that they can be used - # in melpa derivations. - inherit stdenv emacs texinfo packageBuild; - }; - in - stdenv.mkDerivation (postprocess (let super = defaults self // args self; - self = super // extension self super; - in self)); -} diff --git a/pkgs/build-support/melpa/default.nix b/pkgs/build-support/melpa/default.nix new file mode 100644 index 000000000000..11cb14f93db4 --- /dev/null +++ b/pkgs/build-support/melpa/default.nix @@ -0,0 +1,104 @@ +# generic builder for Emacs packages + +{ stdenv, fetchurl, emacs, texinfo +, extension ? (self : super : {}) +}: + +{ pname +, version +, src +, packageRequires ? [] +, extraBuildInputs ? [] + +, files ? null +, fileSpecs ? [ "*.el" "*.el.in" "dir" + "*.info" "*.texi" "*.texinfo" + "doc/dir" "doc/*.info" "doc/*.texi" "doc/*.texinfo" + ] + +, meta ? {} + +, preUnpack ? "", postUnpack ? "" +, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? "" +, configureFlags ? [], preConfigure ? "", postConfigure ? "" +, buildPhase ? "", preBuild ? "", postBuild ? "" +, preInstall ? "", postInstall ? "" +, doCheck ? false, checkPhase ? "", preCheck ? "", postCheck ? "" +, preFixup ? "", postFixup ? "" +}: + +let + inherit (stdenv.lib) concatStringsSep optionalAttrs; + + packageBuild = fetchurl { + url = https://raw.githubusercontent.com/milkypostman/melpa/12a862e5c5c62ce627dab83d7cf2cca6e8b56c47/package-build.el; + sha256 = "1nviyyprypz7nmam9rwli4yv3kxh170glfbznryrp4czxkrjjdhk"; + }; + + fname = "${pname}-${version}"; + + targets = concatStringsSep " " (if files == null then fileSpecs else files); + + defaultMeta = { + broken = false; + homepage = "http://melpa.org/#/${pname}"; + platforms = emacs.meta.platforms; + }; + +in + +stdenv.mkDerivation ({ + name = "emacs-${fname}"; + + inherit src packageBuild; + + buildInputs = [emacs texinfo] ++ packageRequires ++ extraBuildInputs; + propagatedBuildInputs = packageRequires; + propagatedUserEnvPkgs = packageRequires; + + setupHook = ./setup-hook.sh; + + buildPhase = '' + runHook preBuild + + emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \ + -f melpa2nix-build-package \ + ${pname} ${version} ${targets} + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \ + -f melpa2nix-install-package \ + ${fname}.* $out/share/emacs/site-lisp/elpa + + runHook postInstall + ''; + + meta = defaultMeta // meta; +} + +// optionalAttrs (preUnpack != "") { inherit preUnpack; } +// optionalAttrs (postUnpack != "") { inherit postUnpack; } +// optionalAttrs (configureFlags != []) { inherit configureFlags; } +// optionalAttrs (patches != []) { inherit patches; } +// optionalAttrs (patchPhase != "") { inherit patchPhase; } +// optionalAttrs (prePatch != "") { inherit prePatch; } +// optionalAttrs (postPatch != "") { inherit postPatch; } +// optionalAttrs (preConfigure != "") { inherit preConfigure; } +// optionalAttrs (postConfigure != "") { inherit postConfigure; } +// optionalAttrs (buildPhase != "") { inherit buildPhase; } +// optionalAttrs (preBuild != "") { inherit preBuild; } +// optionalAttrs (postBuild != "") { inherit postBuild; } +// optionalAttrs (doCheck) { inherit doCheck; } +// optionalAttrs (checkPhase != "") { inherit checkPhase; } +// optionalAttrs (preCheck != "") { inherit preCheck; } +// optionalAttrs (postCheck != "") { inherit postCheck; } +// optionalAttrs (preInstall != "") { inherit preInstall; } +// optionalAttrs (postInstall != "") { inherit postInstall; } +// optionalAttrs (preFixup != "") { inherit preFixup; } +// optionalAttrs (postFixup != "") { inherit postFixup; } +) diff --git a/pkgs/applications/editors/emacs-24/packages/melpa2nix.el b/pkgs/build-support/melpa/melpa2nix.el similarity index 100% rename from pkgs/applications/editors/emacs-24/packages/melpa2nix.el rename to pkgs/build-support/melpa/melpa2nix.el diff --git a/pkgs/applications/editors/emacs-24/packages/setup-hook.sh b/pkgs/build-support/melpa/setup-hook.sh similarity index 100% rename from pkgs/applications/editors/emacs-24/packages/setup-hook.sh rename to pkgs/build-support/melpa/setup-hook.sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d3c87299563..4af8f9143c8c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9908,7 +9908,7 @@ let }); emacs24Macport = self.emacs24Macport_24_4; - emacsMelpa = import ../applications/editors/emacs-24/packages { + emacsMelpa = import ./emacs-melpa-packages.nix { inherit stdenv pkgs fetchurl fetchgit fetchFromGitHub emacs texinfo; external = { inherit (haskellngPackages) ghc-mod structured-haskell-mode; diff --git a/pkgs/applications/editors/emacs-24/packages/default.nix b/pkgs/top-level/emacs-melpa-packages.nix similarity index 71% rename from pkgs/applications/editors/emacs-24/packages/default.nix rename to pkgs/top-level/emacs-melpa-packages.nix index 8b757621238e..e8f965a784a4 100644 --- a/pkgs/applications/editors/emacs-24/packages/default.nix +++ b/pkgs/top-level/emacs-melpa-packages.nix @@ -13,91 +13,98 @@ # package-user-dir "~/.nix-profile/share/emacs/site-lisp/elpa") # (package-initialize) +with stdenv.lib.licences; let - melpa = import ./melpa.nix { + melpaBuild = import ../build-support/melpa { inherit stdenv fetchurl emacs texinfo; }; in rec { - ac-haskell-process = melpa.mkDerivation (self: { + ac-haskell-process = melpaBuild rec { pname = "ac-haskell-process"; version = "0.5"; src = fetchFromGitHub { owner = "purcell"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "0dlrhc1dmzgrjvcnlqvm6clyv0r6zray6qqliqngy14880grghbm"; }; packageRequires = [ auto-complete haskell-mode ]; - }); + meta = { licence = gpl3Plus; }; + }; - ace-jump-mode = melpa.mkDerivation (self: { + ace-jump-mode = melpaBuild rec { pname = "ace-jump-mode"; version = "20140616"; src = fetchFromGitHub { owner = "winterTTr"; - repo = self.pname; + repo = pname; rev = "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac"; sha256 = "17axrgd99glnl6ma4ls3k01ysdqmiqr581wnrbsn3s4gp53mm2x6"; }; - }); + meta = { licence = gpl3Plus; }; + }; - ag = melpa.mkDerivation (self: { + ag = melpaBuild rec { pname = "ag"; version = "0.44"; src = fetchFromGitHub { owner = "Wilfred"; - repo = "${self.pname}.el"; - rev = self.version; + repo = "${pname}.el"; + rev = version; sha256 = "19y5w9m2flp4as54q8yfngrkri3kd7fdha9pf2xjgx6ryflqx61k"; }; packageRequires = [ dash s ]; - }); - - async = melpa.mkDerivation (self: { + meta = { licence = gpl3Plus; }; + }; + + async = melpaBuild rec { pname = "async"; version = "1.2"; src = fetchFromGitHub { owner = "jwiegley"; repo = "emacs-async"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "1j6mbvvbnm2m1gpsy9ipxiv76b684nn57yssbqdyiwyy499cma6q"; }; - }); + meta = { licence = gpl3Plus; }; + }; - auctex = melpa.mkDerivation (self: { + auctex = melpaBuild rec { pname = "auctex"; version = "11.87.7"; src = fetchurl { - url = "http://elpa.gnu.org/packages/${self.fname}.tar"; + url = "http://elpa.gnu.org/packages/${pname}-${version}.tar"; sha256 = "07bhw8zc3d1f2basjy80njmxpsp4f70kg3ynkch9ghlai3mm2b7n"; }; buildPhase = '' - cp $src ${self.fname}.tar + cp $src ${pname}-${version}.tar ''; - }); - - auto-complete = melpa.mkDerivation (self: { + meta = { licence = gpl3Plus; }; + }; + + auto-complete = melpaBuild rec { pname = "auto-complete"; version = "1.4.0"; src = fetchFromGitHub { - owner = self.pname; - repo = self.pname; - rev = "v${self.version}"; + 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 = stdenv.lib.licenses.gpl3Plus; + license = gpl3Plus; platforms = stdenv.lib.platforms.all; }; - }); + }; - bind-key = melpa.mkDerivation (self: { + bind-key = melpaBuild { pname = "bind-key"; version = "20141013"; src = fetchFromGitHub { @@ -107,102 +114,111 @@ rec { sha256 = "1m4v5h52brg2g9rpbqfq9m3m8fv520vg5mjwppnbw6099d17msqd"; }; files = [ "bind-key.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - change-inner = melpa.mkDerivation (self: { + change-inner = melpaBuild rec { pname = "change-inner"; version = "20130208"; src = fetchFromGitHub { owner = "magnars"; - repo = "${self.pname}.el"; + repo = "${pname}.el"; rev = "6374b745ee1fd0302ad8596cdb7aca1bef33a730"; sha256 = "1fv8630bqbmfr56zai08f1q4dywksmghhm70084bz4vbs6rzdsbq"; }; packageRequires = [ expand-region ]; - }); + meta = { licence = gpl3Plus; }; + }; - circe = melpa.mkDerivation (self: { + circe = melpaBuild rec { pname = "circe"; version = "1.5"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24"; }; packageRequires = [ lcs lui ]; fileSpecs = [ "lisp/circe*.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - company-mode = melpa.mkDerivation (self: { - pname = "company-mode"; + company = melpaBuild rec { + pname = "company"; version = "0.8.6"; src = fetchFromGitHub { owner = "company-mode"; repo = "company-mode"; - rev = self.version; + rev = version; sha256 = "1xwxyqg5dan8m1qkdxyzm066ryf24h07karpdlm3s09izfdny33f"; }; - }); + meta = { licence = gpl3Plus; }; + }; - dash = melpa.mkDerivation (self: { + dash = melpaBuild rec { pname = "dash"; version = "2.9.0"; src = fetchFromGitHub { owner = "magnars"; - repo = "${self.pname}.el"; - rev = self.version; + repo = "${pname}.el"; + rev = version; sha256 = "1lg31s8y6ljsz6ps765ia5px39wim626xy8fbc4jpk8fym1jh7ay"; }; - }); + meta = { licence = gpl3Plus; }; + }; - diminish = melpa.mkDerivation (self: { + diminish = melpaBuild rec { pname = "diminish"; version = "0.44"; src = fetchFromGitHub { owner = "emacsmirror"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "0hshw7z5f8pqxvgxw74kbj6nvprsgfvy45fl854xarnkvqcara09"; }; - }); + meta = { licence = gpl3Plus; }; + }; - epl = melpa.mkDerivation (self: { + epl = melpaBuild rec { pname = "epl"; version = "20140823"; src = fetchFromGitHub { owner = "cask"; - repo = self.pname; + repo = pname; rev = "63c78c08e345455f3d4daa844fdc551a2c18024e"; sha256 = "04a2aq8dj2cmy77vw142wcmnjvqdbdsp6z0psrzz2qw0b0am03li"; }; - }); + meta = { licence = gpl3Plus; }; + }; - evil-god-state = melpa.mkDerivation (self: { + evil-god-state = melpaBuild rec { pname = "evil-god-state"; version = "20140830"; src = fetchFromGitHub { owner = "gridaphobe"; - repo = self.pname; + repo = pname; rev = "234a9b6f500ece89c3dfb5c1df5baef6963e4566"; sha256 = "16v6dpw1hibrkf9hga88gv5axvp1pajd67brnh5h4wpdy9qvwgyy"; }; packageRequires = [ evil god-mode ]; - }); + meta = { licence = gpl3Plus; }; + }; - evil-surround = melpa.mkDerivation (self: { + evil-surround = melpaBuild rec { pname = "evil-surround"; version = "20140616"; src = fetchFromGitHub { owner = "timcharper"; - repo = self.pname; + repo = pname; rev = "71f380b6b6ed38f739c0a4740b3d6de0c52f915a"; sha256 = "0wrmlmgr4mwxlmmh8blplddri2lpk4g8k3l1vpb5c6a975420qvn"; }; packageRequires = [ evil ]; - }); + meta = { licence = gpl3Plus; }; + }; - evil = melpa.mkDerivation (self: { + evil = melpaBuild { pname = "evil"; version = "20141020"; src = fetchgit { @@ -211,122 +227,133 @@ rec { sha256 = "0yiqpzsm5sr7xdkixdvfg312dk9vsdcmj69gizk744d334yn8rsz"; }; packageRequires = [ goto-chg undo-tree ]; - }); + meta = { licence = gpl3Plus; }; + }; - exec-path-from-shell = melpa.mkDerivation (self: { + exec-path-from-shell = melpaBuild rec { pname = "exec-path-from-shell"; version = "20141022"; src = fetchFromGitHub { owner = "purcell"; - repo = self.pname; + repo = pname; rev = "e4af0e9b44738e7474c89ed895200b42e6541515"; sha256 = "0lxikiqf1jik88lf889q4f4f8kdgg3npciz298x605nhbfd5snbd"; }; - }); + meta = { licence = gpl3Plus; }; + }; - expand-region = melpa.mkDerivation (self: { + expand-region = melpaBuild rec { pname = "expand-region"; version = "20141012"; src = fetchFromGitHub { owner = "magnars"; - repo = "${self.pname}.el"; + repo = "${pname}.el"; rev = "fa413e07c97997d950c92d6012f5442b5c3cee78"; sha256 = "04k0518wfy72wpzsswmncnhd372fxa0r8nbfhmbyfmns8n7sr045"; }; - }); + meta = { licence = gpl3Plus; }; + }; - flycheck-pos-tip = melpa.mkDerivation (self: { + flycheck-pos-tip = melpaBuild rec { pname = "flycheck-pos-tip"; version = "20140813"; src = fetchFromGitHub { owner = "flycheck"; - repo = self.pname; + repo = pname; rev = "5b3a203bbdb03e4f48d1654efecd71f44376e199"; sha256 = "0b4x24aq0jh4j4bjv0fqyaz6hzh3gqf57k9763jj9rl32cc3dpnp"; }; packageRequires = [ flycheck popup ]; - }); + meta = { licence = gpl3Plus; }; + }; - flycheck = melpa.mkDerivation (self: { + flycheck = melpaBuild rec { pname = "flycheck"; version = "0.20"; src = fetchFromGitHub { - owner = self.pname; - repo = self.pname; - rev = self.version; + owner = pname; + repo = pname; + rev = version; sha256 = "0cq7y7ssm6phvx5pfv2yqq4j0yqmm0lhjav7v4a8ql7094cd790a"; }; packageRequires = [ dash pkg-info ]; - }); + meta = { licence = gpl3Plus; }; + }; - ghc-mod = melpa.mkDerivation (self: { + ghc-mod = melpaBuild rec { pname = "ghc"; version = external.ghc-mod.version; src = external.ghc-mod.src; fileSpecs = [ "elisp/*.el" ]; - }); + meta = { licence = bsd3; }; + }; - git-commit-mode = melpa.mkDerivation (self: { + git-commit-mode = melpaBuild rec { pname = "git-commit-mode"; version = "0.15.0"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = self.version; + rev = version; sha256 = "1x03276yq63cddc89n8i47k1f6p26b7a5la4hz66fdf15gmr8496"; }; files = [ "git-commit-mode.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - git-rebase-mode = melpa.mkDerivation (self: { + git-rebase-mode = melpaBuild rec { pname = "git-rebase-mode"; version = "0.15.0"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = self.version; + rev = version; sha256 = "1x03276yq63cddc89n8i47k1f6p26b7a5la4hz66fdf15gmr8496"; }; files = [ "git-rebase-mode.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - gitattributes-mode = melpa.mkDerivation (self: { + gitattributes-mode = melpaBuild rec { pname = "gitattributes-mode"; version = "0.15.0"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = self.version; + rev = version; sha256 = "1x03276yq63cddc89n8i47k1f6p26b7a5la4hz66fdf15gmr8496"; }; files = [ "gitattributes-mode.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - gitconfig-mode = melpa.mkDerivation (self: { + gitconfig-mode = melpaBuild rec { pname = "gitconfig-mode"; version = "0.15.0"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = self.version; + rev = version; sha256 = "1x03276yq63cddc89n8i47k1f6p26b7a5la4hz66fdf15gmr8496"; }; files = [ "gitconfig-mode.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - gitignore-mode = melpa.mkDerivation (self: { + gitignore-mode = melpaBuild rec { pname = "gitignore-mode"; version = "0.15.0"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = self.version; + rev = version; sha256 = "1x03276yq63cddc89n8i47k1f6p26b7a5la4hz66fdf15gmr8496"; }; files = [ "gitignore-mode.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - gnus = melpa.mkDerivation (self: { + gnus = melpaBuild rec { pname = "gnus"; version = "20140501"; src = fetchgit { @@ -338,20 +365,22 @@ rec { preBuild = '' (cd lisp && make gnus-load.el) ''; - }); + meta = { licence = gpl3Plus; }; + }; - god-mode = melpa.mkDerivation (self: { + god-mode = melpaBuild rec { pname = "god-mode"; version = "20140811"; src = fetchFromGitHub { owner = "chrisdone"; - repo = self.pname; + repo = pname; rev = "6b7ae259a58ca1d7776aa4eca9f1092e4c0033e6"; sha256 = "1amr98nq82g2d3f3f5wlqm9g38j64avygnsi9rrlbfqz4f71vq7x"; }; - }); + meta = { licence = gpl3Plus; }; + }; - goto-chg = melpa.mkDerivation (self: { + goto-chg = melpaBuild rec { pname = "goto-chg"; version = "1.6"; src = fetchgit { @@ -360,92 +389,100 @@ rec { sha256 = "0yiqpzsm5sr7xdkixdvfg312dk9vsdcmj69gizk744d334yn8rsz"; }; files = [ "lib/goto-chg.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - haskell-mode = melpa.mkDerivation (self: { + haskell-mode = melpaBuild rec { pname = "haskell-mode"; version = "20150101"; src = fetchFromGitHub { owner = "haskell"; - repo = self.pname; + repo = pname; rev = "0db5efaaeb3b22e5a3fdafa600729e14c1716ee2"; sha256 = "0d63cgzj579cr8zbrnl0inyy35b26sxinqxr7bgrjsngpmhm52an"; }; - }); + meta = { licence = gpl3Plus; }; + }; - helm-swoop = melpa.mkDerivation (self: { + helm-swoop = melpaBuild rec { pname = "helm-swoop"; version = "20141224"; src = fetchFromGitHub { owner = "ShingoFukuyama"; - repo = self.pname; + repo = pname; rev = "06a251f7d7fce2a5719e0862e5855972cd8ab1ae"; sha256 = "0nq33ldhbvfbm6jnsxqdf3vwaqrsr2gprkzll081gcyl2s1x0l2m"; }; packageRequires = [ helm ]; - }); + meta = { licence = gpl3Plus; }; + }; - helm = melpa.mkDerivation (self: { + helm = melpaBuild rec { pname = "helm"; version = "20150105"; src = fetchFromGitHub { owner = "emacs-helm"; - repo = self.pname; + repo = pname; rev = "e5608ad86e7ca72446a4b1aa0faf604200ffe895"; sha256 = "0n2kr6pyzcsi8pq6faxz2y8kicz1gmvj98fzzlq3a107dqqp25ay"; }; packageRequires = [ async ]; - }); + meta = { licence = gpl3Plus; }; + }; - hi2 = melpa.mkDerivation (self: { + hi2 = melpaBuild rec { pname = "hi2"; version = "1.0"; src = fetchFromGitHub { owner = "nilcons"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf"; }; - }); + meta = { licence = gpl3Plus; }; + }; - idris-mode = melpa.mkDerivation (self: { + idris-mode = melpaBuild rec { pname = "idris-mode"; version = "0.9.15"; src = fetchFromGitHub { owner = "idris-hackers"; repo = "idris-mode"; - rev = self.version; + rev = version; sha256 = "00pkgk1zxan89i8alsa2dpa9ls7imqk5zb1kbjwzrlbr0gk4smdb"; }; packageRequires = [ flycheck ]; - }); + meta = { licence = gpl3Plus; }; + }; - lcs = melpa.mkDerivation (self: { + lcs = melpaBuild rec { pname = "lcs"; version = "1.5"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24"; }; fileSpecs = [ "lisp/lcs*.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - lui = melpa.mkDerivation (self: { + lui = melpaBuild rec { pname = "lui"; version = "1.5"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24"; }; packageRequires = [ tracking ]; fileSpecs = [ "lisp/lui*.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - magit = melpa.mkDerivation (self: { + magit = melpaBuild rec { pname = "magit"; version = "20141025"; src = fetchFromGitHub { @@ -455,203 +492,220 @@ rec { sha256 = "0mzyx72pidzvla1x2qszn3c60n2j0n8i5k875c4difvd1n4p0vsk"; }; packageRequires = [ git-commit-mode git-rebase-mode ]; - }); + meta = { licence = gpl3Plus; }; + }; - markdown-mode = melpa.mkDerivation (self: { + markdown-mode = melpaBuild rec { pname = "markdown-mode"; version = "2.0"; src = fetchFromGitHub { owner = "defunkt"; - repo = self.pname; - rev = "v${self.version}"; + repo = pname; + rev = "v${version}"; sha256 = "1l2w0j9xl8pipz61426s79jq2yns42vjvysc6yjc29kbsnhalj29"; }; - }); + meta = { licence = gpl3Plus; }; + }; - org-plus-contrib = melpa.mkDerivation (self: { + org-plus-contrib = melpaBuild rec { pname = "org-plus-contrib"; version = "20141020"; src = fetchurl { - url = "http://orgmode.org/elpa/${self.fname}.tar"; + url = "http://orgmode.org/elpa/${pname}-${version}.tar"; sha256 = "02njxmdbmias2f5psvwqc115dyakcwm2g381gfdv8qz4sqav0r77"; }; buildPhase = '' - cp $src ${self.fname}.tar + cp $src ${pname}-${version}.tar ''; - }); + meta = { licence = gpl3Plus; }; + }; - pkg-info = melpa.mkDerivation (self: { + pkg-info = melpaBuild rec { pname = "pkg-info"; version = "20140610"; src = fetchFromGitHub { owner = "lunaryorn"; - repo = "${self.pname}.el"; + repo = "${pname}.el"; rev = "475cdeb0b8d44f9854e506c429eeb445787014ec"; sha256 = "0x4nz54f2shgcw3gx66d265vxwdpdirn64gzii8dpxhsi7v86n0p"; }; packageRequires = [ epl ]; - }); + meta = { licence = gpl3Plus; }; + }; - popup = melpa.mkDerivation (self: { + popup = melpaBuild rec { pname = "popup"; version = "0.5.0"; src = fetchFromGitHub { owner = "auto-complete"; - repo = "${self.pname}-el"; - rev = "v${self.version}"; + repo = "${pname}-el"; + rev = "v${version}"; sha256 = "0836ayyz1syvd9ry97ya06l8mpr88c6xbgb4d98szj6iwbypcj7b"; }; - }); + meta = { licence = gpl3Plus; }; + }; - projectile = melpa.mkDerivation (self: { + projectile = melpaBuild rec { pname = "projectile"; version = "20141020"; src = fetchFromGitHub { owner = "bbatsov"; - repo = self.pname; + repo = pname; rev = "13580d83374e0c17c55b3a680b816dfae407657e"; sha256 = "10c28h2g53sg68lwamhak0shdhh26h5xaipipz3n4281sr1fwg58"; }; packageRequires = [ dash helm s pkg-info epl ]; - }); + meta = { licence = gpl3Plus; }; + }; - rich-minority = melpa.mkDerivation (self: { + rich-minority = melpaBuild rec { pname = "rich-minority"; version = "0.1.1"; src = fetchFromGitHub { owner = "Bruce-Connor"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "0kvhy4mgs9llihwsb1a9n5a85xzjiyiyawxnz0axy2bvwcxnp20k"; }; packageRequires = [ dash ]; - }); + meta = { licence = gpl3Plus; }; + }; - s = melpa.mkDerivation (self: { + s = melpaBuild rec { pname = "s"; version = "20140910"; src = fetchFromGitHub { owner = "magnars"; - repo = "${self.pname}.el"; + repo = "${pname}.el"; rev = "1f85b5112f3f68169ddaa2911fcfa030f979eb4d"; sha256 = "9d871ea84f98c51099528a03eddf47218cf70f1431d4c35c19c977d9e73d421f"; }; - }); + meta = { licence = gpl3Plus; }; + }; - shorten = melpa.mkDerivation (self: { + shorten = melpaBuild rec { pname = "shorten"; version = "1.5"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24"; }; fileSpecs = [ "lisp/shorten*.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - smart-mode-line = melpa.mkDerivation (self: { + smart-mode-line = melpaBuild rec { pname = "smart-mode-line"; version = "2.6"; src = fetchFromGitHub { owner = "Bruce-Connor"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "17nav2jbvbd13xzgp29x396mc617n2dh6whjk4wnyvsyv7r0s9f6"; }; packageRequires = [ dash rich-minority ]; - }); + meta = { licence = gpl3Plus; }; + }; - smartparens = melpa.mkDerivation (self: { + smartparens = melpaBuild rec { pname = "smartparens"; version = "1.6.2"; src = fetchFromGitHub { owner = "Fuco1"; - repo = self.pname; - rev = self.version; + repo = pname; + rev = version; sha256 = "16pzd740vd1r3qfmxia2ibiarinm6xpja0mjv3nni5dis5s4r9gc"; }; packageRequires = [ dash ]; - }); + meta = { licence = gpl3Plus; }; + }; - structured-haskell-mode = melpa.mkDerivation (self: { + 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 = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; + license = bsd3; + platforms = external.structured-haskell-mode.meta.platforms; }; - }); + }; - switch-window = melpa.mkDerivation (self: { + switch-window = melpaBuild rec { pname = "switch-window"; version = "20140919"; src = fetchFromGitHub { owner = "dimitri"; - repo = self.pname; + repo = pname; rev = "3ffbe68e584f811e891f96afa1de15e0d9c1ebb5"; sha256 = "09221128a0f55a575ed9addb3a435cfe01ab6bdd0cca5d589ccd37de61ceccbd"; }; - }); + meta = { licence = gpl3Plus; }; + }; - tracking = melpa.mkDerivation (self: { + tracking = melpaBuild rec { pname = "tracking"; version = "1.5"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "v${self.version}"; + rev = "v${version}"; sha256 = "08dsv1dzgb9jx076ia7xbpyjpaxn1w87h6rzlb349spaydq7ih24"; }; packageRequires = [ shorten ]; fileSpecs = [ "lisp/tracking*.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - undo-tree = melpa.mkDerivation (self: { + undo-tree = melpaBuild rec { pname = "undo-tree"; version = "0.6.4"; src = fetchgit { - url = "http://www.dr-qubit.org/git/${self.pname}.git"; + url = "http://www.dr-qubit.org/git/${pname}.git"; rev = "a3e81b682053a81e082139300ef0a913a7a610a2"; sha256 = "1qla7njkb7gx5aj87i8x6ni8jfk1k78ivwfiiws3gpbnyiydpx8y"; }; - }); + meta = { licence = gpl3Plus; }; + }; - use-package = melpa.mkDerivation (self: { + use-package = melpaBuild rec { pname = "use-package"; version = "20141013"; src = fetchFromGitHub { owner = "jwiegley"; - repo = self.pname; + repo = pname; rev = "d43af5e0769a92f77e01dea229e376d9006722ef"; sha256 = "1m4v5h52brg2g9rpbqfq9m3m8fv520vg5mjwppnbw6099d17msqd"; }; packageRequires = [ bind-key diminish ]; files = [ "use-package.el" ]; - }); + meta = { licence = gpl3Plus; }; + }; - volatile-highlights = melpa.mkDerivation (self: { + volatile-highlights = melpaBuild rec { pname = "volatile-highlights"; version = "1.11"; src = fetchFromGitHub { owner = "k-talo"; - repo = "${self.pname}.el"; + repo = "${pname}.el"; rev = "fb2abc2d4d4051a9a6b7c8de2fe7564161f01f24"; sha256 = "1v0chqj5jir4685jd8ahw86g9zdmi6xd05wmzhyw20rbk924fcqf"; }; - }); + meta = { licence = gpl3Plus; }; + }; - weechat = melpa.mkDerivation (self: { + weechat = melpaBuild rec { pname = "weechat.el"; version = "20141016"; src = fetchFromGitHub { owner = "the-kenny"; - repo = self.pname; + repo = pname; rev = "4cb2ced1eda5167ce774e04657d2cd077b63c706"; sha256 = "003sihp7irm0qqba778dx0gf8xhkxd1xk7ig5kgkryvl2jyirk28"; }; @@ -659,9 +713,10 @@ rec { rm weechat-sauron.el weechat-secrets.el ''; packageRequires = [ s ]; - }); + meta = { licence = gpl3Plus; }; + }; - wgrep = melpa.mkDerivation (self: { + wgrep = melpaBuild rec { pname = "wgrep"; version = "20141017"; src = fetchFromGitHub { @@ -670,5 +725,6 @@ rec { rev = "7ef26c51feaef8a5ec0929737130ab8ba326983c"; sha256 = "075z0glain0dp56d0cp468y5y88wn82ab26aapsrdzq8hmlshwn4"; }; - }); + meta = { licence = gpl3Plus; }; + }; }