about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2014-12-23 12:50:43 +0100
committerPeter Simons <simons@cryp.to>2014-12-23 12:50:43 +0100
commitf0c80e1cedbc62fe6048c1364538704d5b76fec6 (patch)
tree38dfaf951d7c883279b4247df256d3762df2ceaf /pkgs
parent8885c992fdea4b2a015bca207f920045418e917b (diff)
downloadnixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar.gz
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar.bz2
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar.lz
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar.xz
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.tar.zst
nixlib-f0c80e1cedbc62fe6048c1364538704d5b76fec6.zip
haskell-mode: add current snapshot of git 'master' branch as a low-prio alternative to the (fairly old) release version
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/emacs-modes/haskell/default.nix17
-rw-r--r--pkgs/applications/editors/emacs-modes/haskell/git.nix39
-rw-r--r--pkgs/top-level/all-packages.nix1
3 files changed, 52 insertions, 5 deletions
diff --git a/pkgs/applications/editors/emacs-modes/haskell/default.nix b/pkgs/applications/editors/emacs-modes/haskell/default.nix
index 3f4b93dc6381..7f4373c41ba6 100644
--- a/pkgs/applications/editors/emacs-modes/haskell/default.nix
+++ b/pkgs/applications/editors/emacs-modes/haskell/default.nix
@@ -1,18 +1,25 @@
 { stdenv, fetchurl, emacs, texinfo }:
 
-stdenv.mkDerivation rec {
-  name = "haskell-mode-13.10";
+let
+  version = "13.10";
+in
+stdenv.mkDerivation {
+  name = "haskell-mode-${version}";
 
   src = fetchurl {
-    url = "https://github.com/haskell/haskell-mode/archive/v13.10.tar.gz";
+    url = "https://github.com/haskell/haskell-mode/archive/v${version}.tar.gz";
     sha256 = "0hcg7wpalcdw8j36m8vd854zrrgym074r7m903rpwfrhx9mlg02b";
   };
 
   buildInputs = [ emacs texinfo ];
 
+  makeFlags = "VERSION=${version} GIT_VERSION=${version}";
+
   installPhase = ''
-    mkdir -p "$out/share/emacs/site-lisp"
-    cp *.el *.elc *.hs "$out/share/emacs/site-lisp/"
+    mkdir -p $out/share/emacs/site-lisp
+    cp *.el *.elc *.hs $out/share/emacs/site-lisp/
+    mkdir -p $out/share/info
+    cp -v *.info* $out/share/info/
   '';
 
   meta = {
diff --git a/pkgs/applications/editors/emacs-modes/haskell/git.nix b/pkgs/applications/editors/emacs-modes/haskell/git.nix
new file mode 100644
index 000000000000..72f49592b51f
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/haskell/git.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, emacs, texinfo }:
+
+let
+  version = "13.10-299-g74b5a3c";      # git describe --tags
+in
+stdenv.mkDerivation {
+  name = "haskell-mode-${version}";
+
+  src = fetchFromGitHub {
+    owner = "haskell";
+    repo = "haskell-mode";
+    rev = "v${version}";
+    sha256 = "1qjrc1c4jsgbbhnhssvadg00qffn80a8slrxc9g1hnzp632kv8wl";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  makeFlags = "VERSION=v${version} GIT_VERSION=v${version}";
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp *.el *.elc *.hs $out/share/emacs/site-lisp/
+    mkdir -p $out/share/info
+    cp -v *.info* $out/share/info/
+  '';
+
+  # The test suite must run *after* copying the generated files to $out
+  # because "make check" implies "make clean".
+  doInstallCheck = true;
+  installCheckTarget = "check";
+
+  meta = {
+    homepage = "http://github.com/haskell/haskell-mode";
+    description = "Haskell mode for Emacs";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5efcb1812a78..61d4b9b82d64 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9474,6 +9474,7 @@ let
     gitModes = callPackage ../applications/editors/emacs-modes/git-modes { };
 
     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
+    haskellModeGit = lowPrio (callPackage ../applications/editors/emacs-modes/haskell/git.nix { });
 
     hsc3Mode = callPackage ../applications/editors/emacs-modes/hsc3 { };