diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/editors/emacs-modes/haskell/default.nix | 17 | ||||
-rw-r--r-- | pkgs/applications/editors/emacs-modes/haskell/git.nix | 39 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 1 |
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 { }; |