summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs-modes
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/emacs-modes')
-rw-r--r--pkgs/applications/editors/emacs-modes/auto-complete/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/bbdb/3.nix25
-rw-r--r--pkgs/applications/editors/emacs-modes/bbdb/default.nix10
-rw-r--r--pkgs/applications/editors/emacs-modes/calfw/default.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/cedet/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/coffee/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/cryptol/default.nix26
-rw-r--r--pkgs/applications/editors/emacs-modes/darcsum/darcs_context7
-rw-r--r--pkgs/applications/editors/emacs-modes/darcsum/default.nix34
-rw-r--r--pkgs/applications/editors/emacs-modes/ecb/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix7
-rw-r--r--pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/emms/default.nix5
-rw-r--r--pkgs/applications/editors/emacs-modes/ess/default.nix9
-rw-r--r--pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/gh/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/gist/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/haskell/default.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/hol_light/default.nix19
-rw-r--r--pkgs/applications/editors/emacs-modes/idris/default.nix31
-rw-r--r--pkgs/applications/editors/emacs-modes/jade/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/jdee/default.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/jdee/java-directory.patch6
-rw-r--r--pkgs/applications/editors/emacs-modes/js2/default.nix5
-rw-r--r--pkgs/applications/editors/emacs-modes/logito/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/magit/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/maude/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/metaweblog/default.nix31
-rw-r--r--pkgs/applications/editors/emacs-modes/ocaml/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/offlineimap/default.nix28
-rw-r--r--pkgs/applications/editors/emacs-modes/org/default.nix15
-rw-r--r--pkgs/applications/editors/emacs-modes/org2blog/default.nix17
-rw-r--r--pkgs/applications/editors/emacs-modes/pcache/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/proofgeneral/4.2.nix (renamed from pkgs/applications/editors/emacs-modes/proofgeneral/default.nix)6
-rw-r--r--pkgs/applications/editors/emacs-modes/proofgeneral/4.3pre.nix48
-rw-r--r--pkgs/applications/editors/emacs-modes/quack/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/rect-mark/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/remember/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/sbt-mode/default.nix24
-rw-r--r--pkgs/applications/editors/emacs-modes/scala-mode/v1.nix (renamed from pkgs/applications/editors/emacs-modes/scala-mode/default.nix)0
-rw-r--r--pkgs/applications/editors/emacs-modes/scala-mode/v2.nix24
-rw-r--r--pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix23
-rw-r--r--pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/tuareg/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/writegood/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/xml-rpc/default.nix2
48 files changed, 419 insertions, 83 deletions
diff --git a/pkgs/applications/editors/emacs-modes/auto-complete/default.nix b/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
index 75f484d295b5..40f172316efc 100644
--- a/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
+++ b/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Auto-complete extension for Emacs";
     homepage = http://cx4a.org/software/auto-complete/;
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/bbdb/3.nix b/pkgs/applications/editors/emacs-modes/bbdb/3.nix
new file mode 100644
index 000000000000..556bf83fab72
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/bbdb/3.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "bbdb-3.1.2";
+
+  src = fetchurl {
+    url = "http://download.savannah.gnu.org/releases/bbdb/${name}.tar.gz";
+    sha256 = "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05";
+  };
+
+  buildInputs = [ emacs ];
+
+  # Hack to disable documentation as there is no way to tell bbdb to
+  # NOT build pdfs. I really don't want to pull in TexLive here...
+  preConfigure = ''
+   substituteInPlace ./Makefile.in \
+     --replace "SUBDIRS = lisp doc tex" "SUBDIRS = lisp"
+  '';
+
+  meta = {
+    homepage = "http://savannah.nongnu.org/projects/bbdb/";
+    description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/bbdb/default.nix b/pkgs/applications/editors/emacs-modes/bbdb/default.nix
index da92c38d0780..ed96e6892833 100644
--- a/pkgs/applications/editors/emacs-modes/bbdb/default.nix
+++ b/pkgs/applications/editors/emacs-modes/bbdb/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, emacs, texinfo, ctags}:
 
-stdenv.mkDerivation {
-  name = "bbdb-2.35";
+stdenv.mkDerivation rec {
+  name = "bbdb-2.36";
 
   src = fetchurl {
     # not using mirror:// because it produces a different file
-    url = http://bbdb.sourceforge.net/bbdb-2.35.tar.gz;
-    sha256 = "3fb1316e2ed74d47ca61187fada550e58797467bd9e8ad67343ed16da769f916";
+    url = "http://bbdb.sourceforge.net/${name}.tar.gz";
+    sha256 = "1rmw94l71ahfbynyy0bijfy488q9bl5ksl4zpvg7j9dbmgbh296r";
   };
 
   patches = [ ./install-infodir.patch ];
@@ -28,8 +28,8 @@ stdenv.mkDerivation {
   '';
 
   meta = {
+    homepage = "http://bbdb.sourceforge.net/";
     description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs";
-    homepage = http://bbdb.sourceforge.net/;
     license = "GPL";
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/calfw/default.nix b/pkgs/applications/editors/emacs-modes/calfw/default.nix
index 8934238ffa3a..c173684fab4c 100644
--- a/pkgs/applications/editors/emacs-modes/calfw/default.nix
+++ b/pkgs/applications/editors/emacs-modes/calfw/default.nix
@@ -16,17 +16,17 @@ stdenv.mkDerivation rec {
 
   installPhase =
     ''
-       ensureDir "$out/share/doc/${name}"
+       mkdir -p "$out/share/doc/${name}"
        cp -v readme.md "$out/share/doc/${name}"
 
-       ensureDir "$out/share/emacs/site-lisp/"
+       mkdir -p "$out/share/emacs/site-lisp/"
        cp *.el "$out/share/emacs/site-lisp/"
     '';
 
   meta = {
     description = "A calendar framework for Emacs";
 
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     maintainers = with stdenv.lib.maintainers; [ chaoflow ];
     platforms = stdenv.lib.platforms.gnu;
diff --git a/pkgs/applications/editors/emacs-modes/cedet/default.nix b/pkgs/applications/editors/emacs-modes/cedet/default.nix
index 779fc8a146e1..e350dc08e71c 100644
--- a/pkgs/applications/editors/emacs-modes/cedet/default.nix
+++ b/pkgs/applications/editors/emacs-modes/cedet/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
       Development Environment), and COGRE (COnnected GRaph Editor).
     '';
 
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     homepage = http://cedet.sourceforge.net/;
   };
diff --git a/pkgs/applications/editors/emacs-modes/coffee/default.nix b/pkgs/applications/editors/emacs-modes/coffee/default.nix
index a0ba61431655..495b1aca4b53 100644
--- a/pkgs/applications/editors/emacs-modes/coffee/default.nix
+++ b/pkgs/applications/editors/emacs-modes/coffee/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Emacs major mode for CoffeeScript, unfancy JavaScript";
     homepage = https://github.com/defunkt/coffee-mode;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/color-theme/default.nix b/pkgs/applications/editors/emacs-modes/color-theme/default.nix
index bad277d61ce3..a3d76a307c74 100644
--- a/pkgs/applications/editors/emacs-modes/color-theme/default.nix
+++ b/pkgs/applications/editors/emacs-modes/color-theme/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Emacs-lisp mode for skinning your Emacs";
     homepage = http://www.nongnu.org/color-theme;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/cryptol/default.nix b/pkgs/applications/editors/emacs-modes/cryptol/default.nix
new file mode 100644
index 000000000000..5b408ad7999d
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/cryptol/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name    = "cryptol-mode-${version}";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url    = "https://github.com/thoughtpolice/cryptol-mode/archive/v${version}.tar.gz";
+    sha256 = "1qyrqvfgpg1nyk1clv7v94r3amm02613hrak5732xzn6iak81cc0";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for Cryptol";
+    homepage    = "https://thoughtpolice/cryptol-mode";
+    license     = stdenv.lib.licenses.gpl3Plus;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/darcsum/darcs_context b/pkgs/applications/editors/emacs-modes/darcsum/darcs_context
new file mode 100644
index 000000000000..7e9de1ed80b5
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/darcsum/darcs_context
@@ -0,0 +1,7 @@
+
+Context:
+
+[TAG 1.3
+Simon Michael <simon@joyful.com>**20131103203640
+ Ignore-this: d12bac373e4aa0e5ffe6c390e1dfe269
+] 
diff --git a/pkgs/applications/editors/emacs-modes/darcsum/default.nix b/pkgs/applications/editors/emacs-modes/darcsum/default.nix
new file mode 100644
index 000000000000..349146dbdd89
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/darcsum/default.nix
@@ -0,0 +1,34 @@
+# To automatically load darcsum when needed, add the following to your emacs init file:
+#
+#   (autoload 'darcsum-changes "darcsum" nil t)
+#   (autoload 'darcsum-whatsnew "darcsum" nil t)
+#   (autoload 'darcsum-view "darcsum" nil t)
+#
+# (These lines were copied from 50darcsum.el in the darcsum repository.)
+
+
+{ fetchdarcs, stdenv }:
+
+stdenv.mkDerivation {
+  name = "darcsum-1.3";
+
+  src = fetchdarcs {
+    url = http://hub.darcs.net/simon/darcsum;
+    context = ./darcs_context;
+    sha256 = "18dyk2apmnjapd604a5njfqwjri1mc7lgjaajy9phicpibgdrwzh";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    install -d "$out/share/emacs/site-lisp"
+    install darcsum.el "$out/share/emacs/site-lisp"
+  '';
+
+  meta = {
+    description = "A pcl-cvs like interface for managing darcs patches.";
+    homepage = "http://hub.darcs.net/simon/darcsum";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.falsifian ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/ecb/default.nix b/pkgs/applications/editors/emacs-modes/ecb/default.nix
index 33f0299f5f00..807bb91f850c 100644
--- a/pkgs/applications/editors/emacs-modes/ecb/default.nix
+++ b/pkgs/applications/editors/emacs-modes/ecb/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
       navigation and overview.
     '';
 
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     homepage = http://ecb.sourceforge.net/;
 
diff --git a/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix b/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix
index 9db6e4cb7364..af031a6e1a16 100644
--- a/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix
+++ b/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix
@@ -1,4 +1,4 @@
-{ clangStdenv, fetchgit, llvm, clangUnwrapped }:
+{ clangStdenv, fetchgit, llvm, clang }:
 
 clangStdenv.mkDerivation {
   name = "emacs-clang-complete-async-20130218";
@@ -8,7 +8,7 @@ clangStdenv.mkDerivation {
     sha256 = "1c8zqi6axbsb951azz9iqx3j52j30nd9ypv396hvids3g02cirrf";
   };
 
-  buildInputs = [ llvm clangUnwrapped ];
+  buildInputs = [ llvm clang.clang ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -20,7 +20,6 @@ clangStdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/Golevka/emacs-clang-complete-async";
     description = "An emacs plugin to complete C and C++ code using libclang";
-    license = "GPLv3+";
+    license = clangStdenv.lib.licenses.gpl3Plus;
   };
 }
-
diff --git a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
index e0373fca5df5..26f313f038df 100644
--- a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
+++ b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
@@ -52,10 +52,10 @@ stdenv.mkDerivation rec {
       developed a simple Emacs interface to w3m.
     '';
 
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     homepage = http://emacs-w3m.namazu.org/;
 
-    maintainers = [ ];
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/emms/default.nix b/pkgs/applications/editors/emacs-modes/emms/default.nix
index 5439ba9e4d6e..a44be28399dc 100644
--- a/pkgs/applications/editors/emacs-modes/emms/default.nix
+++ b/pkgs/applications/editors/emacs-modes/emms/default.nix
@@ -64,9 +64,10 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/emms/;
 
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
-    platforms = stdenv.lib.platforms.gnu;
+    platforms = stdenv.lib.platforms.unix;
+    broken = true;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/ess/default.nix b/pkgs/applications/editors/emacs-modes/ess/default.nix
index 4bd5148b9508..46e20a58ee68 100644
--- a/pkgs/applications/editors/emacs-modes/ess/default.nix
+++ b/pkgs/applications/editors/emacs-modes/ess/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, emacs, texinfo }:
 
-stdenv.mkDerivation {
-  name = "ess-13.05";
+stdenv.mkDerivation rec {
+  name = "ess-13.09";
 
   src = fetchurl {
-    url = "http://ess.r-project.org/downloads/ess/ess-13.05.tgz";
-    sha256 = "007rd8hg1aclr2i8178ym5c4bi7vgmwkp802v1mkgr85h50zlfdk";
+    url = "http://ess.r-project.org/downloads/ess/${name}.tgz";
+    sha256 = "1lki3vb6p7cw98zqq0gaia68flpqrjkd6dcl85fs0cc8qf55yqnh";
   };
 
   buildInputs = [ emacs texinfo ];
@@ -16,5 +16,6 @@ stdenv.mkDerivation {
     description = "Emacs Speaks Statistics";
     homepage = "http://ess.r-project.org/";
     license = stdenv.lib.licenses.gpl2Plus;
+    hydraPlatforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
index 4b2692a5e22a..eae338d241de 100644
--- a/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
+++ b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.emacswiki.org/emacs/download/flymake-cursor.el";
-    sha256 = "1qqppd1786w8pl1avjb01n23lwihb7m0hr23abjklsxz03gmp4qz";
+    sha256 = "10cpzrd588ya52blghxss5zkn6x8hc7bx1h0qbcdlybbmkjgpkxr";
   };
 
   phases = [ "buildPhase" "installPhase"];
@@ -26,7 +26,5 @@ stdenv.mkDerivation rec {
     description = "Displays flymake error msg in minibuffer after delay";
     homepage = http://www.emacswiki.org/emacs/flymake-cursor.el;
     license = stdenv.lib.licenses.publicDomain;
-
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/gh/default.nix b/pkgs/applications/editors/emacs-modes/gh/default.nix
index 28773e97c409..dca84a7936d7 100644
--- a/pkgs/applications/editors/emacs-modes/gh/default.nix
+++ b/pkgs/applications/editors/emacs-modes/gh/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A (very early) GitHub client library for Emacs";
     homepage = https://github.com/sigma/gh.el;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/gist/default.nix b/pkgs/applications/editors/emacs-modes/gist/default.nix
index 21a2137dd392..08471247f081 100644
--- a/pkgs/applications/editors/emacs-modes/gist/default.nix
+++ b/pkgs/applications/editors/emacs-modes/gist/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Emacs integration for gist.github.com";
     homepage = https://github.com/sigma/gist.el;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/haskell/default.nix b/pkgs/applications/editors/emacs-modes/haskell/default.nix
index a1e52e1c301c..3f4b93dc6381 100644
--- a/pkgs/applications/editors/emacs-modes/haskell/default.nix
+++ b/pkgs/applications/editors/emacs-modes/haskell/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, emacs, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "haskell-mode-13.07";
+  name = "haskell-mode-13.10";
 
   src = fetchurl {
-    url = "https://github.com/haskell/haskell-mode/archive/v13.07.tar.gz";
-    sha256 = "15c8ncj9mykkrizy1a8l94gq37s8hj13v3p5rgyaj9z0cwgl85kx";
+    url = "https://github.com/haskell/haskell-mode/archive/v13.10.tar.gz";
+    sha256 = "0hcg7wpalcdw8j36m8vd854zrrgym074r7m903rpwfrhx9mlg02b";
   };
 
   buildInputs = [ emacs texinfo ];
diff --git a/pkgs/applications/editors/emacs-modes/hol_light/default.nix b/pkgs/applications/editors/emacs-modes/hol_light/default.nix
index 24eba20be6cc..c32669239f88 100644
--- a/pkgs/applications/editors/emacs-modes/hol_light/default.nix
+++ b/pkgs/applications/editors/emacs-modes/hol_light/default.nix
@@ -1,15 +1,12 @@
-{stdenv, fetchsvn}:
+{ stdenv, fetchsvn }:
 
-let
-  revision = "73";
-in
-
-stdenv.mkDerivation {
-  name = "hol_light_mode-${revision}";
+stdenv.mkDerivation rec {
+  name    = "hol_light-mode-${version}";
+  version = "73";
 
   src = fetchsvn {
     url = http://seanmcl-ocaml-lib.googlecode.com/svn/trunk/workshop/software/emacs;
-    rev = revision;
+    rev = version;
     sha256 = "3ca83098960439da149a47e1caff32536601559a77f04822be742a390c67feb7";
   };
 
@@ -20,6 +17,10 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A HOL Light mode for emacs";
+    description = "A HOL Light mode for Emacs";
+    homepage    = http://www.cl.cam.ac.uk/~jrh13/hol-light/;
+    license     = stdenv.lib.licenses.gpl2Plus;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/idris/default.nix b/pkgs/applications/editors/emacs-modes/idris/default.nix
new file mode 100644
index 000000000000..28375dcb68df
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/idris/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "idris-mode";
+  version = "0.9.13.1";
+
+  src = fetchurl {
+    url = "https://github.com/idris-hackers/${pname}/archive/${version}.tar.gz";
+    sha256 = "0ymjbkwsq7qra691wyldw91xcdgrbx3468vvrha5jj92v7nwb8wx";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for Idris";
+    homepage = https://github.com/idris-hackers/idris-mode;
+    license = stdenv.lib.licenses.gpl3;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/jade/default.nix b/pkgs/applications/editors/emacs-modes/jade/default.nix
index ab0e3512ef28..925fa54c735f 100644
--- a/pkgs/applications/editors/emacs-modes/jade/default.nix
+++ b/pkgs/applications/editors/emacs-modes/jade/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Emacs major mode for jade and stylus";
     homepage = https://github.com/brianc/jade-mode;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/jdee/default.nix b/pkgs/applications/editors/emacs-modes/jdee/default.nix
index b25d178d1648..e47da7a41934 100644
--- a/pkgs/applications/editors/emacs-modes/jdee/default.nix
+++ b/pkgs/applications/editors/emacs-modes/jdee/default.nix
@@ -26,8 +26,8 @@ in
       mkdir -p "dist"
       cat > build.properties <<EOF
         dist.lisp.dir = dist/share/emacs/site-lisp
-        dist.java.lib.dir = dist/lib/java
-        dist.jar.jde.file = dist/lib/java/jde.jar
+        dist.java.lib.dir = dist/share/java
+        dist.jar.jde.file = dist/share/java/jde.jar
         dist.java.src.dir = dist/src/${name}/java
         dist.doc.dir  dist/doc/${name}
         prefix.dir = $out
@@ -40,7 +40,7 @@ in
       for i in "lisp/"*.el
       do
         sed -i "$i" -e "s|@out@|$out|g ;
-                        s|@javadir@|$out/lib/java|g ;
+                        s|@javadir@|$out/share/java|g ;
                         s|@datadir@|$out/share/${name}|g"
       done
     '';
@@ -55,7 +55,7 @@ in
 
       # Move everything that's not a JAR to $datadir.  This includes
       # `sun_checks.xml', license files, etc.
-      cd "$out/lib/java"
+      cd "$out/share/java"
       for i in *
       do
         if echo $i | grep -qv '\.jar''$'
@@ -89,9 +89,11 @@ in
         * Java source interpreter (Pat Neimeyer's BeanShell)
       '';
 
-      license = "GPLv2+";
+      license = stdenv.lib.licenses.gpl2Plus;
 
       maintainers = [ ];
       platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+
+      broken = true;
     };
   }
diff --git a/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch b/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch
index 53aa8edc6eaa..ec03749daa67 100644
--- a/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch
+++ b/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch
@@ -14,7 +14,7 @@ Tell the elisp code about the right Java directory.
 -    (oset this bsh-cmd-dir (expand-file-name "bsh-commands" jde-java-directory))
 -    (oset this checkstyle-jar  (expand-file-name "lib/checkstyle-all.jar" jde-java-directory))
 -    (oset this regexp-jar (expand-file-name "lib/jakarta-regexp.jar" jde-java-directory))
-+  (let ((jde-java-directory "@out@/lib/java"))
++  (let ((jde-java-directory "@out@/share/java"))
 +
 +    (oset this bsh-cmd-dir "@datadir@/bsh-commands")
 +    (oset this checkstyle-jar  (expand-file-name "checkstyle-all.jar" jde-java-directory))
@@ -38,7 +38,7 @@ Tell the elisp code about the right Java directory.
 -	  (concat
 -	   (jde-find-jde-data-directory)
 -	   "java/"))
-+	 (jde-java-directory "@out@/lib/java")
++	 (jde-java-directory "@out@/share/java")
  	 (args (append
  		(unless jde-checkstyle-expanded-properties-file
  		  (jde-checkstyle-get-property-args this))
@@ -67,7 +67,7 @@ Tell the elisp code about the right Java directory.
 -	     (jde-java-directory
 -	      (expand-file-name "java"
 -	       (jde-find-jde-data-directory)))
-+	     (jde-java-directory "@out@/lib/java")
++	     (jde-java-directory "@out@/share/java")
  	     (vm-args 
  		(let (args)
  		  (setq args 
diff --git a/pkgs/applications/editors/emacs-modes/js2/default.nix b/pkgs/applications/editors/emacs-modes/js2/default.nix
index cbd883304348..47e62a281fb0 100644
--- a/pkgs/applications/editors/emacs-modes/js2/default.nix
+++ b/pkgs/applications/editors/emacs-modes/js2/default.nix
@@ -1,12 +1,11 @@
 { stdenv, fetchgit, emacs }:
 
 stdenv.mkDerivation {
-  name = "js2-mode-0-20120712";
+  name = "js2-mode-0-20140114";
 
   src = fetchgit {
     url = "git://github.com/mooz/js2-mode.git";
-    rev = "f8cb9c52614e0a8e477f1ac557585ed950246c9b";
-    sha256 = "37055b7e8c1d9eee6b86f6b9b9d74ad196cc43701bc2263ffd539a3e44025047";
+    sha256 = "dbdc07b864a9506a21af445c7fb1c75fbffadaac980ee7bbf752470d8054bd65";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/emacs-modes/logito/default.nix b/pkgs/applications/editors/emacs-modes/logito/default.nix
index 09161ec80678..a47f04472ec7 100644
--- a/pkgs/applications/editors/emacs-modes/logito/default.nix
+++ b/pkgs/applications/editors/emacs-modes/logito/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "tiny logging framework for Emacs";
     homepage = https://github.com/sigma/logito;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix b/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
index 72086e54fece..b75c51d3bd74 100644
--- a/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
+++ b/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Insert dummy pseudo Latin text for Emacs";
     homepage = http://www.emacswiki.org/emacs/LoremIpsum;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/magit/default.nix b/pkgs/applications/editors/emacs-modes/magit/default.nix
index 4e2601cc106c..076caf5235b2 100644
--- a/pkgs/applications/editors/emacs-modes/magit/default.nix
+++ b/pkgs/applications/editors/emacs-modes/magit/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/magit/magit";
     description = "Magit, an Emacs interface to Git";
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     longDescription = ''
       With Magit, you can inspect and modify your Git repositories with
diff --git a/pkgs/applications/editors/emacs-modes/maude/default.nix b/pkgs/applications/editors/emacs-modes/maude/default.nix
index b6b043fb7b8d..57c2b2890be7 100644
--- a/pkgs/applications/editors/emacs-modes/maude/default.nix
+++ b/pkgs/applications/editors/emacs-modes/maude/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Emacs mode for the programming language Maude";
-    license = "GPLv2";
+    license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
diff --git a/pkgs/applications/editors/emacs-modes/metaweblog/default.nix b/pkgs/applications/editors/emacs-modes/metaweblog/default.nix
new file mode 100644
index 000000000000..77bfedf62748
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/metaweblog/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, emacs, xmlRpc }:
+
+stdenv.mkDerivation rec {
+  name = "metaweblog-0.1";
+
+  src = fetchgit {
+    url = https://github.com/punchagan/metaweblog.git;
+    rev = "ceda65048afaa4c7596c7f50ced998c59ef41167";
+    sha256 = "a4c10bb1b4be574e560f87d5f07da4e24e5fffe9ecc83e6d4f9325f3a7eb1e2f";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ xmlRpc ];
+
+  buildPhase = ''
+    emacs -L . -L ${xmlRpc}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "an emacs library to access metaweblog based weblogs";
+    homepage = https://github.com/punchagan/metaweblog;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/ocaml/default.nix b/pkgs/applications/editors/emacs-modes/ocaml/default.nix
index 1d81a0b7ff1e..9e4496ff1a48 100644
--- a/pkgs/applications/editors/emacs-modes/ocaml/default.nix
+++ b/pkgs/applications/editors/emacs-modes/ocaml/default.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation {
 
   installPhase = ''
     cd emacs;
-    ensureDir "$out/share/emacs/site-lisp" "$out/bin"
+    mkdir -p "$out/share/emacs/site-lisp" "$out/bin"
     EMACSDIR=$out/share/emacs/site-lisp make simple-install install-ocamltags
   '';
 
diff --git a/pkgs/applications/editors/emacs-modes/offlineimap/default.nix b/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
new file mode 100644
index 000000000000..d94da4f88d9e
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  rev = "646482203aacdf847d57d0a96263fddcfc33fb61";
+  name = "emacs-offlineimap-${rev}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://git.naquadah.org/offlineimap-el.git";
+    sha256 = "0az4llfgva4wvpljyc5s2m7ggfnj06ssp32x8bncr5fzksha3r7b";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    substituteInPlace offlineimap.el --replace "Machine.MachineUI" "machineui"
+    emacs --batch -f batch-byte-compile offlineimap.el
+    install -d $out/share/emacs/site-lisp
+    install offlineimap.el offlineimap.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "OfflineIMAP support for Emacs";
+    homepage = "http://julien.danjou.info/projects/emacs-packages#offlineimap";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.garbas ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/org/default.nix b/pkgs/applications/editors/emacs-modes/org/default.nix
index ad2bd2f0ba6a..d5a7b0ded8a2 100644
--- a/pkgs/applications/editors/emacs-modes/org/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -1,15 +1,16 @@
-{ fetchurl, stdenv, emacs, texinfo, which, texLive }:
+{ fetchurl, stdenv, emacs, texinfo, which, texLive, texLiveCMSuper
+, texLiveAggregationFun }:
 
 stdenv.mkDerivation rec {
-  name = "org-8.2.1";
+  name = "org-8.2.7c";
 
   src = fetchurl {
     url = "http://orgmode.org/${name}.tar.gz";
-    sha256 = "625e2b6786158bcf6c43194075f7638ab8048c68a60025289a051c407e467823";
+    sha256 = "0qqf58xqw1kkgjxm9z40s6h7xd209rx3933klla22lryv3yclc1k";
   };
 
   buildInputs = [ emacs ];
-  nativeBuildInputs = [ texinfo texLive ];
+  nativeBuildInputs = [ (texLiveAggregationFun { paths=[ texinfo texLive texLiveCMSuper ]; }) ];
 
   configurePhase =
     '' sed -i mk/default.mk \
@@ -41,9 +42,9 @@ stdenv.mkDerivation rec {
          than that found in GNU Emacs.
       '';
 
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
-    maintainers = with stdenv.lib.maintainers; [ chaoflow ];
-    platforms = stdenv.lib.platforms.gnu;
+    maintainers = with stdenv.lib.maintainers; [ chaoflow pSub ];
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/org2blog/default.nix b/pkgs/applications/editors/emacs-modes/org2blog/default.nix
index e72560be8f44..5c1aec7e02b7 100644
--- a/pkgs/applications/editors/emacs-modes/org2blog/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org2blog/default.nix
@@ -1,19 +1,22 @@
-{ stdenv, fetchgit, emacs, xmlRpc }:
+{ stdenv, fetchgit, emacs, org, xmlRpc, metaweblog }:
 
 stdenv.mkDerivation rec {
-  name = "org2blog-0.5";
+  name = "org2blog-0.8.1";
 
   src = fetchgit {
     url = https://github.com/punchagan/org2blog.git;
-    rev = "338abe30e9bc89684f8384f8deaf826b63844da6";
-    sha256 = "46ab31e90d0d54071c126b7d5599a3e82062baa79ddf26b988bcb88d306d6827";
+    rev = "5f573ff3e4007c16517a5fe28c4f5d8dde3f8a77";
+    sha256 = "e83c08ceece92bb507be70046db4a7fa87a4af34ad3f84a727e0bd6a1dd99a33";
   };
 
   buildInputs = [ emacs ];
-  propagatedUserEnvPkgs = [ xmlRpc ];
+  propagatedUserEnvPkgs = [ org xmlRpc metaweblog ];
 
   buildPhase = ''
-    emacs -L . -L ${xmlRpc}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+    emacs -L . -L ${org}/share/emacs/site-lisp/org \
+               -L ${xmlRpc}/share/emacs/site-lisp \
+               -L ${metaweblog}/share/emacs/site-lisp \
+               --batch -f batch-byte-compile *.el
   '';
 
   installPhase = ''
@@ -24,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Publish directly from Emacs’ org-mode to WordPress blogs";
     homepage = https://github.com/punchagan/org2blog;
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/pcache/default.nix b/pkgs/applications/editors/emacs-modes/pcache/default.nix
index c0aa07726788..f4dcf03dee84 100644
--- a/pkgs/applications/editors/emacs-modes/pcache/default.nix
+++ b/pkgs/applications/editors/emacs-modes/pcache/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Persistent caching for Emacs";
     homepage = https://github.com/sigma/pcache.el;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix b/pkgs/applications/editors/emacs-modes/proofgeneral/4.2.nix
index 3f974423fd70..c026d058b4e3 100644
--- a/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix
+++ b/pkgs/applications/editors/emacs-modes/proofgeneral/4.2.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation (rec {
                s|/sbin/install-info|install-info|g"
 
 
-       # Workaround for bug #458 
+       # Workaround for bug #458
        # ProofGeneral 4.2 byte-compilation fails with Emacs 24.2.90
        # http://proofgeneral.inf.ed.ac.uk/trac/ticket/458
        sed -i "Makefile" \
@@ -48,7 +48,7 @@ stdenv.mkDerivation (rec {
       interactive theorem provers), based on the customizable text editor Emacs.
     '';
     homepage = http://proofgeneral.inf.ed.ac.uk;
-    license = "GPLv2+";
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;  # arbitrary choice
   };
 })
diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/4.3pre.nix b/pkgs/applications/editors/emacs-modes/proofgeneral/4.3pre.nix
new file mode 100644
index 000000000000..3a492dc0c7f4
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/proofgeneral/4.3pre.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, emacs, texinfo, texLive, perl, which, automake }:
+
+stdenv.mkDerivation (rec {
+  name = "ProofGeneral-4.3pre131011";
+
+  src = fetchurl {
+    url = http://proofgeneral.inf.ed.ac.uk/releases/ProofGeneral-4.3pre131011.tgz;
+    sha256 = "0104iy2xik5npkdg9p2ir6zqyrmdc93azrgm3ayvg0z76vmnb816";
+  };
+
+  sourceRoot = name;
+
+  buildInputs = [ emacs texinfo texLive perl which ];
+
+  prePatch =
+    '' sed -i "Makefile" \
+           -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \
+               s|/sbin/install-info|install-info|g"
+
+
+       sed -i "bin/proofgeneral" -e's/which/type -p/g'
+
+       # @image{ProofGeneral} fails, so remove it.
+       sed -i '94d' doc/PG-adapting.texi
+       sed -i '96d' doc/ProofGeneral.texi
+    '';
+
+  preBuild = ''
+    make clean;
+  '';
+
+  installPhase =
+    # Copy `texinfo.tex' in the right place so that `texi2pdf' works.
+    '' cp -v "${automake}/share/"automake-*/texinfo.tex doc
+       make install install-doc
+    '';
+
+  meta = {
+    description = "Proof General, an Emacs front-end for proof assistants";
+    longDescription = ''
+      Proof General is a generic front-end for proof assistants (also known as
+      interactive theorem provers), based on the customizable text editor Emacs.
+    '';
+    homepage = http://proofgeneral.inf.ed.ac.uk;
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.unix;  # arbitrary choice
+  };
+})
diff --git a/pkgs/applications/editors/emacs-modes/quack/default.nix b/pkgs/applications/editors/emacs-modes/quack/default.nix
index bef1ebe5859b..95634a24ded4 100644
--- a/pkgs/applications/editors/emacs-modes/quack/default.nix
+++ b/pkgs/applications/editors/emacs-modes/quack/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Enhanced Emacs support for editing and running Scheme code";
     homepage = http://www.neilvandyke.org/quack/;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
index 896dbdac71be..1f218439a5ff 100644
--- a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
+++ b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Mark a rectangle of text with highlighting";
     homepage = http://emacswiki.org/emacs/RectangleMark;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/remember/default.nix b/pkgs/applications/editors/emacs-modes/remember/default.nix
index ea17a9b792ae..7c0bc517755a 100644
--- a/pkgs/applications/editors/emacs-modes/remember/default.nix
+++ b/pkgs/applications/editors/emacs-modes/remember/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://gna.org/projects/remember-el/;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix b/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
new file mode 100644
index 000000000000..092026aca88a
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, emacs, unzip }:
+
+stdenv.mkDerivation {
+
+  name = "sbt-mode-2014-06-05";
+
+  src = fetchurl {
+    url = "https://github.com/hvesalai/sbt-mode/archive/676f22d9658989de401d299ed0250db9b911574d.zip";
+    sha256 = "0b8qrr3yp48ggl757d3a6bz633mbf4zxqpcwsh47b1ckiwa3nb2h";
+  };
+
+  buildInputs = [ unzip emacs ];
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -v *.el *.elc "$out/share/emacs/site-lisp/"
+  '';
+
+  meta = {
+    homepage = "https://github.com/hvesalai/scala-mode2";
+    description = "An Emacs mode for editing Scala code";
+    license = "permissive";
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/scala-mode/default.nix b/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix
index f82d467066a6..f82d467066a6 100644
--- a/pkgs/applications/editors/emacs-modes/scala-mode/default.nix
+++ b/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix
diff --git a/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
new file mode 100644
index 000000000000..13d3f4b00d1f
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, emacs, unzip }:
+
+stdenv.mkDerivation {
+
+  name = "scala-mode2-2014-06-05";
+
+  src = fetchurl {
+    url = "https://github.com/hvesalai/scala-mode2/archive/af2dc30226c890ff7d49d727450f8006b90781df.zip";
+    sha256 = "1jj08li9lfg5291jzj170wa3cmyf3g2a0j80cy5307l0mdawp9vx";
+  };
+
+  buildInputs = [ unzip emacs ];
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -v *.el *.elc "$out/share/emacs/site-lisp/"
+  '';
+
+  meta = {
+    homepage = "https://github.com/hvesalai/scala-mode2";
+    description = "An Emacs mode for editing Scala code";
+    license = "permissive";
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
new file mode 100644
index 000000000000..a9c2478d451c
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
@@ -0,0 +1,23 @@
+{ cabal, emacs, haskellMode, haskellSrcExts }:
+
+cabal.mkDerivation (self: {
+  pname = "structured-haskell-mode";
+  version = "1.0.3";
+  sha256 = "0axmw8bj51q8v0wd4jp6giw9dnv0mp7kp8yd16s4nm4hcqgrh5h2";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ haskellSrcExts haskellMode ];
+  buildTools = [ emacs ];
+  postInstall = ''
+    emacs -L elisp -L ${haskellMode}/share/emacs/site-lisp \
+      --batch -f batch-byte-compile "elisp/"*.el
+    install -d $out/share/emacs/site-lisp
+    install "elisp/"*.el "elisp/"*.elc  $out/share/emacs/site-lisp
+  '';
+  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;
+  };
+})
diff --git a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
index e942189714ea..aa27e302e5d6 100644
--- a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
+++ b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Two-pane file manager for Emacs based on Dired and inspired by MC";
     homepage = http://www.emacswiki.org/emacs/Sunrise_Commander;
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/emacs-modes/tuareg/default.nix b/pkgs/applications/editors/emacs-modes/tuareg/default.nix
index 17957ffc276b..3fd592f3dba6 100644
--- a/pkgs/applications/editors/emacs-modes/tuareg/default.nix
+++ b/pkgs/applications/editors/emacs-modes/tuareg/default.nix
@@ -15,7 +15,7 @@ in stdenv.mkDerivation {
   buildInputs = [ emacs ];
 
   installPhase = ''
-    ensureDir "$out/share/emacs/site-lisp"
+    mkdir -p "$out/share/emacs/site-lisp"
     cp *.el *.elc  "$out/share/emacs/site-lisp"
   '';
 
diff --git a/pkgs/applications/editors/emacs-modes/writegood/default.nix b/pkgs/applications/editors/emacs-modes/writegood/default.nix
new file mode 100644
index 000000000000..d196c3fee804
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/writegood/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "2.0";
+
+in stdenv.mkDerivation {
+  name = "writegood-mode-${version}";
+  src = fetchurl {
+    url = "https://github.com/bnbeckwith/writegood-mode/archive/v${version}.tar.gz";
+    sha256 = "0wf7bj9d00ggy3xigym885a3njfr98i3aqrrawf8x6lgbfc56dgp";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs minor mode that aids in finding common writing problems";
+    homepage = https://github.com/bnbeckwith/writegood-mode;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.pSub ];
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix b/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
index cee0f0ca5534..661430516b70 100644
--- a/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
+++ b/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Elisp implementation of clientside XML-RPC";
     homepage = https://launchpad.net/xml-rpc-el;
-    license = "GPLv3+";
+    license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.all;
   };