Initial work on ghcjs
This commit is contained in:
parent
af5f5ec84d
commit
e0b2950168
42
pkgs/development/tools/haskell/Cabal-ghcjs/default.nix
Normal file
42
pkgs/development/tools/haskell/Cabal-ghcjs/default.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck
|
||||||
|
, random, stm, testFramework, testFrameworkHunit
|
||||||
|
, testFrameworkQuickcheck2, time, zlib, fetchgit
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "Cabal-ghcjs";
|
||||||
|
version = "9e87d6a3";
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://github.com/ghcjs/cabal.git;
|
||||||
|
rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78";
|
||||||
|
sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj";
|
||||||
|
};
|
||||||
|
preConfigure = "cd Cabal";
|
||||||
|
configureFlags = "--program-suffix=-js";
|
||||||
|
|
||||||
|
# jww (2014-05-31): Why is this failing?
|
||||||
|
# BuildDeps/InternalLibrary4:
|
||||||
|
# : [Failed]
|
||||||
|
# expected: 'setup install' should succeed
|
||||||
|
# output: "/private/var/folders/8h/tky3qz1d63l05l5jp_nzwzjr0000gn/T/nix-build-haskell-Cabal-ghcjs-ghc7.8.2-9e87d6a3-shared.drv-0/git-export/Cabal/tests/Setup configure --user -w /nix/store/v1gr2sk0117ycn9bmwyp3whgxqkbd5sl-ghc-7.8.2-wrapper/bin/ghc" in PackageTests/BuildDeps/InternalLibrary4/to-install
|
||||||
|
# Configuring InternalLibrary4-0.2...
|
||||||
|
# Setup: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with
|
||||||
|
# Cabal. Use the flag --package-db to specify a package database (it can be used
|
||||||
|
# multiple times).
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
buildDepends = [
|
||||||
|
filepath HTTP mtl network random stm time zlib QuickCheck
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
filepath HTTP HUnit mtl network QuickCheck stm testFramework
|
||||||
|
testFrameworkHunit testFrameworkQuickcheck2 time zlib
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/cabal/";
|
||||||
|
description = "The command-line interface for Cabal and Hackage";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
@ -0,0 +1,35 @@
|
|||||||
|
{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck
|
||||||
|
, random, stm, testFramework, testFrameworkHunit
|
||||||
|
, testFrameworkQuickcheck2, time, zlib, fetchgit
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "cabal-install-ghcjs";
|
||||||
|
version = "9e87d6a3";
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://github.com/ghcjs/cabal.git;
|
||||||
|
rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78";
|
||||||
|
sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj";
|
||||||
|
};
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
preConfigure = "cd cabal-install";
|
||||||
|
buildDepends = [
|
||||||
|
CabalGhcjs filepath HTTP mtl network random stm time zlib
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework
|
||||||
|
testFrameworkHunit testFrameworkQuickcheck2 time zlib
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
mkdir $out/etc
|
||||||
|
mv bash-completion $out/etc/bash_completion.d
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/cabal/";
|
||||||
|
description = "The command-line interface for Cabal and Hackage";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
@ -0,0 +1,36 @@
|
|||||||
|
{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck
|
||||||
|
, random, stm, testFramework, testFrameworkHunit
|
||||||
|
, testFrameworkQuickcheck2, time, zlib, fetchgit
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "cabal-install-ghcjs";
|
||||||
|
version = "9e87d6a3";
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://github.com/ghcjs/cabal.git;
|
||||||
|
rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78";
|
||||||
|
sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj";
|
||||||
|
};
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
configureFlags = "--program-suffix=-js";
|
||||||
|
preConfigure = "cd cabal-install";
|
||||||
|
buildDepends = [
|
||||||
|
CabalGhcjs filepath HTTP mtl network random stm time zlib
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework
|
||||||
|
testFrameworkHunit testFrameworkQuickcheck2 time zlib
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
mkdir $out/etc
|
||||||
|
mv bash-completion $out/etc/bash_completion.d
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/cabal/";
|
||||||
|
description = "The command-line interface for Cabal and Hackage";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
62
pkgs/development/tools/haskell/ghcjs/default.nix
Normal file
62
pkgs/development/tools/haskell/ghcjs/default.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm
|
||||||
|
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time
|
||||||
|
, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable
|
||||||
|
, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2
|
||||||
|
, parallel, safe, shelly, split, stringsearch, syb, systemFileio
|
||||||
|
, systemFilepath, tar, terminfo, textBinary, unorderedContainers
|
||||||
|
, vector, wlPprintText, yaml, fetchgit, Cabal, cabalInstall
|
||||||
|
, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch
|
||||||
|
, automake, libtool
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: rec {
|
||||||
|
pname = "ghcjs";
|
||||||
|
version = "c9ce6b9d";
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://github.com/ghcjs/ghcjs.git;
|
||||||
|
rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84";
|
||||||
|
sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw";
|
||||||
|
};
|
||||||
|
bootSrc = fetchgit {
|
||||||
|
url = git://github.com/ghcjs/ghcjs-boot.git;
|
||||||
|
rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81";
|
||||||
|
sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8";
|
||||||
|
};
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
jailbreak = true;
|
||||||
|
noHaddock = true;
|
||||||
|
buildDepends = [
|
||||||
|
filepath HTTP mtl network random stm time zlib aeson attoparsec
|
||||||
|
bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta
|
||||||
|
lens optparseApplicative_0_7_0_2 parallel safe shelly split
|
||||||
|
stringsearch syb systemFileio systemFilepath tar terminfo textBinary
|
||||||
|
unorderedContainers vector wlPprintText yaml
|
||||||
|
alex happy git gnumake gcc autoconf automake libtool patch
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
HUnit regexPosix testFramework testFrameworkHunit
|
||||||
|
];
|
||||||
|
postConfigure = ''
|
||||||
|
echo Patching ghcjs with absolute paths to the Nix store
|
||||||
|
sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \
|
||||||
|
src/Compiler/Info.hs
|
||||||
|
sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \
|
||||||
|
src-bin/Boot.hs
|
||||||
|
'';
|
||||||
|
postInstall = ''
|
||||||
|
cp -R ${bootSrc} ghcjs-boot
|
||||||
|
cd ghcjs-boot
|
||||||
|
chmod -R u+w . # because fetchgit made it read-only
|
||||||
|
ensureDir $out/share/ghcjs
|
||||||
|
PATH=$out/bin:${Cabal}/bin:$PATH \
|
||||||
|
$out/bin/ghcjs-boot --init --with-cabal ${cabalInstall}/bin/cabal-js
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/ghcjs/ghcjs";
|
||||||
|
description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.jwiegley ];
|
||||||
|
};
|
||||||
|
})
|
@ -2956,6 +2956,7 @@ let
|
|||||||
# Reasonably current HEAD snapshot.
|
# Reasonably current HEAD snapshot.
|
||||||
haskellPackages_ghc782 = haskell.packages_ghc782;
|
haskellPackages_ghc782 = haskell.packages_ghc782;
|
||||||
haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
|
haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
|
||||||
|
haskellPackages_ghcjs = haskell.packages_ghcjs;
|
||||||
|
|
||||||
haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; });
|
haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; });
|
||||||
|
|
||||||
|
@ -214,6 +214,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
packages_ghcjs = packages_ghc782 // {
|
||||||
|
ghc = ../development/tools/haskell/ghcjs;
|
||||||
|
};
|
||||||
|
|
||||||
packages_ghc782 =
|
packages_ghc782 =
|
||||||
packages { ghcPath = ../development/compilers/ghc/7.8.2.nix;
|
packages { ghcPath = ../development/compilers/ghc/7.8.2.nix;
|
||||||
ghcBinary = ghc742Binary;
|
ghcBinary = ghc742Binary;
|
||||||
|
@ -843,6 +843,11 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
cabal = self.cabal.override { enableLibraryProfiling = false; }; # pkg cannot be built with profiling enabled
|
cabal = self.cabal.override { enableLibraryProfiling = false; }; # pkg cannot be built with profiling enabled
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ghcjs = callPackage ../development/tools/haskell/ghcjs {
|
||||||
|
Cabal = self.Cabal_1_18_1_3;
|
||||||
|
cabalInstall = self.cabalInstallGhcjs;
|
||||||
|
};
|
||||||
|
|
||||||
ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
|
ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
|
||||||
|
|
||||||
ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
|
ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
|
||||||
@ -2825,6 +2830,19 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
cabalInstall_1_20_0_2 = callPackage ../tools/package-management/cabal-install/1.20.0.2.nix { Cabal = self.Cabal_1_20_0_1; };
|
cabalInstall_1_20_0_2 = callPackage ../tools/package-management/cabal-install/1.20.0.2.nix { Cabal = self.Cabal_1_20_0_1; };
|
||||||
cabalInstall = self.cabalInstall_1_20_0_2;
|
cabalInstall = self.cabalInstall_1_20_0_2;
|
||||||
|
|
||||||
|
CabalGhcjs = callPackage ../development/tools/haskell/Cabal-ghcjs {
|
||||||
|
QuickCheck = self.QuickCheck_2_6;
|
||||||
|
testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override {
|
||||||
|
QuickCheck = self.QuickCheck_2_6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cabalInstallGhcjs = callPackage ../development/tools/haskell/cabal-install-ghcjs {
|
||||||
|
QuickCheck = self.QuickCheck_2_6;
|
||||||
|
testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override {
|
||||||
|
QuickCheck = self.QuickCheck_2_6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
codex = callPackage ../development/tools/haskell/codex {};
|
codex = callPackage ../development/tools/haskell/codex {};
|
||||||
|
|
||||||
commandQq = callPackage ../development/libraries/haskell/command-qq {};
|
commandQq = callPackage ../development/libraries/haskell/command-qq {};
|
||||||
|
Loading…
Reference in New Issue
Block a user