haskellPackages.haste-compiler: fix so that it now builds and runs
Required adding: haskellPackages.haste-Cabal, and haskellPackages.haste-cabal-install
This commit is contained in:
35
pkgs/development/tools/haskell/haste/haste-Cabal.nix
Normal file
35
pkgs/development/tools/haskell/haste/haste-Cabal.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
# Haste requires its own patched up version of Cabal that's not on hackage
|
||||
{ mkDerivation, array, base, binary, bytestring, containers
|
||||
, deepseq, directory, extensible-exceptions, filepath, old-time
|
||||
, pretty, process, QuickCheck, regex-posix, stdenv, tasty
|
||||
, tasty-hunit, tasty-quickcheck, time, unix
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "Cabal";
|
||||
version = "1.23.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "valderman";
|
||||
repo = "cabal";
|
||||
rev = "a1962987ba32d5e20090830f50c6afdc78dae005";
|
||||
sha256 = "1gjmscfsikcvgkv6zricpfxvj23wxahndm784lg9cpxrc3pn5hvh";
|
||||
};
|
||||
libraryHaskellDepends = [
|
||||
array base binary bytestring containers deepseq directory filepath
|
||||
pretty process time unix
|
||||
];
|
||||
testHaskellDepends = [
|
||||
base bytestring containers directory extensible-exceptions filepath
|
||||
old-time pretty process QuickCheck regex-posix tasty tasty-hunit
|
||||
tasty-quickcheck unix
|
||||
];
|
||||
prePatch = ''
|
||||
rm -rf cabal-install
|
||||
cd Cabal
|
||||
'';
|
||||
doCheck = false;
|
||||
homepage = "http://www.haskell.org/cabal/";
|
||||
description = "A framework for packaging Haskell software";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
||||
46
pkgs/development/tools/haskell/haste/haste-cabal-install.nix
Normal file
46
pkgs/development/tools/haskell/haste/haste-cabal-install.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
# Haste requires its own patched up version of cabal-install that's not on hackage
|
||||
{ mkDerivation, array, base, bytestring, Cabal, containers
|
||||
, directory, extensible-exceptions, filepath, HTTP, mtl, network
|
||||
, network-uri, pretty, process, QuickCheck, random, regex-posix
|
||||
, stdenv, stm, tagged, tasty, tasty-hunit, tasty-quickcheck, time
|
||||
, unix, zlib
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "cabal-install";
|
||||
version = "1.23.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "valderman";
|
||||
repo = "cabal";
|
||||
rev = "a1962987ba32d5e20090830f50c6afdc78dae005";
|
||||
sha256 = "1gjmscfsikcvgkv6zricpfxvj23wxahndm784lg9cpxrc3pn5hvh";
|
||||
};
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [
|
||||
array base bytestring Cabal containers directory filepath HTTP mtl
|
||||
network network-uri pretty process random stm time unix zlib
|
||||
];
|
||||
testHaskellDepends = [
|
||||
array base bytestring Cabal containers directory
|
||||
extensible-exceptions filepath HTTP mtl network network-uri pretty
|
||||
process QuickCheck random regex-posix stm tagged tasty tasty-hunit
|
||||
tasty-quickcheck time unix zlib
|
||||
];
|
||||
prePatch = ''
|
||||
rm -rf Cabal
|
||||
cd cabal-install
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir $out/etc
|
||||
mv bash-completion $out/etc/bash_completion.d
|
||||
|
||||
# Manually added by Nix maintainer
|
||||
mv -v $out/etc/bash_completion.d/cabal $out/etc/bash_completion.d/haste-cabal
|
||||
'';
|
||||
doCheck = false;
|
||||
homepage = "http://www.haskell.org/cabal/";
|
||||
description = "The command-line interface for Cabal and Hackage";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
||||
32
pkgs/development/tools/haskell/haste/haste-compiler.nix
Normal file
32
pkgs/development/tools/haskell/haste/haste-compiler.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ overrideCabal
|
||||
, super-haste-compiler
|
||||
}:
|
||||
|
||||
overrideCabal super-haste-compiler (drv: {
|
||||
configureFlags = [ "-f-portable" ];
|
||||
prePatch = ''
|
||||
# Get ghc libdir by invoking ghc and point to haste-cabal binary
|
||||
substituteInPlace src/Haste/Environment.hs \
|
||||
--replace \
|
||||
'hasteGhcLibDir = hasteSysDir' \
|
||||
'hasteGhcLibDir = head $ lines $ either (error . show) id $ unsafePerformIO $ shell $ run "ghc" ["--print-libdir"] ""' \
|
||||
--replace \
|
||||
'hasteCabalBinary = hasteBinDir </> "haste-cabal" ++ binaryExt' \
|
||||
'hasteCabalBinary = "haste-cabal" ++ binaryExt'
|
||||
|
||||
# Don't try to download/install haste-cabal in haste-boot:
|
||||
patch src/haste-boot.hs << EOF
|
||||
@@ -178,10 +178,6 @@
|
||||
pkgSysLibDir, jsmodSysDir, pkgSysDir]
|
||||
|
||||
mkdir True (hasteCabalRootDir portableHaste)
|
||||
- case getHasteCabal cfg of
|
||||
- Download -> installHasteCabal portableHaste tmpdir
|
||||
- Prebuilt fp -> copyHasteCabal portableHaste fp
|
||||
- Source mdir -> buildHasteCabal portableHaste (maybe "../cabal" id mdir)
|
||||
|
||||
-- Spawn off closure download in the background.
|
||||
dir <- pwd -- use absolute path for closure to avoid dir changing race
|
||||
EOF
|
||||
'';
|
||||
})
|
||||
Reference in New Issue
Block a user