mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-23 14:13:35 +00:00
f9ebbc80a1
@peti I've determined that the hang which this fixes does not happen all of the time (in fact, I've been using ghc-mod for weeks without seeing it once). But today it happened again, and it made me realize I had undone this patch locally. I'm committing it now because it fixes the problem completely for me, and certainly cannot hurt.
61 lines
2.0 KiB
Nix
61 lines
2.0 KiB
Nix
{ cabal, Cabal, convertible, deepseq, doctest, emacs, filepath
|
|
, ghcSybUtils, hlint, hspec, ioChoice, syb, time, transformers
|
|
}:
|
|
|
|
cabal.mkDerivation (self: {
|
|
pname = "ghc-mod";
|
|
version = "4.1.3";
|
|
sha256 = "0n7nbjbiiphlasqfcxx15fa8axwd9csq2nh3r0wvkrgpsazdlw8c";
|
|
isLibrary = true;
|
|
isExecutable = true;
|
|
buildDepends = [
|
|
Cabal convertible deepseq filepath ghcSybUtils hlint ioChoice syb
|
|
time transformers
|
|
];
|
|
testDepends = [
|
|
Cabal convertible deepseq doctest filepath ghcSybUtils hlint hspec
|
|
ioChoice syb time transformers
|
|
];
|
|
buildTools = [ emacs ];
|
|
doCheck = false;
|
|
configureFlags = "--datasubdir=${self.pname}-${self.version}";
|
|
postInstall = ''
|
|
cd $out/share/$pname-$version
|
|
sed -i -e 's/"-b" "\\n" "-l"/"-l" "-b" "\\"\\\\n\\""/' ghc-process.el
|
|
make
|
|
rm Makefile
|
|
cd ..
|
|
ensureDir "$out/share/emacs"
|
|
mv $pname-$version emacs/site-lisp
|
|
|
|
mv $out/bin/ghc-mod $out/bin/.ghc-mod-wrapped
|
|
cat - > $out/bin/ghc-mod <<EOF
|
|
#! ${self.stdenv.shell}
|
|
COMMAND=\$1
|
|
shift
|
|
eval exec $out/bin/.ghc-mod-wrapped \$COMMAND \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
|
|
EOF
|
|
chmod +x $out/bin/ghc-mod
|
|
|
|
mv $out/bin/ghc-modi $out/bin/.ghc-modi-wrapped
|
|
cat - > $out/bin/ghc-modi <<EOF
|
|
#! ${self.stdenv.shell}
|
|
COMMAND=\$1
|
|
shift
|
|
eval exec $out/bin/.ghc-modi-wrapped \$COMMAND \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
|
|
EOF
|
|
chmod +x $out/bin/ghc-modi
|
|
'';
|
|
meta = {
|
|
homepage = "http://www.mew.org/~kazu/proj/ghc-mod/";
|
|
description = "Happy Haskell Programming";
|
|
license = self.stdenv.lib.licenses.bsd3;
|
|
platforms = self.ghc.meta.platforms;
|
|
maintainers = [
|
|
self.stdenv.lib.maintainers.andres
|
|
self.stdenv.lib.maintainers.bluescreen303
|
|
self.stdenv.lib.maintainers.ocharles
|
|
];
|
|
};
|
|
})
|