diff options
Diffstat (limited to 'pkgs/development/compilers/ghcjs/7.10')
-rw-r--r-- | pkgs/development/compilers/ghcjs/7.10/boot.patch | 104 | ||||
-rw-r--r-- | pkgs/development/compilers/ghcjs/7.10/default.nix | 50 | ||||
-rw-r--r-- | pkgs/development/compilers/ghcjs/7.10/shims.nix | 7 | ||||
-rw-r--r-- | pkgs/development/compilers/ghcjs/7.10/stage2.nix | 344 |
4 files changed, 505 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghcjs/7.10/boot.patch b/pkgs/development/compilers/ghcjs/7.10/boot.patch new file mode 100644 index 000000000000..9f4fa3a8b7ae --- /dev/null +++ b/pkgs/development/compilers/ghcjs/7.10/boot.patch @@ -0,0 +1,104 @@ +diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs +index db8b12e..7b815c5 100644 +--- a/src-bin/Boot.hs ++++ b/src-bin/Boot.hs +@@ -540,9 +540,7 @@ initPackageDB :: B () + initPackageDB = do + msg info "creating package databases" + initDB "--global" <^> beLocations . blGlobalDB +- traverseOf_ _Just initUser <^> beLocations . blUserDBDir + where +- initUser dir = rm_f (dir </> "package.conf") >> initDB "--user" (dir </> "package.conf.d") + initDB dbName db = do + rm_rf db >> mkdir_p db + ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () +@@ -566,29 +564,22 @@ installDevelopmentTree = subTop $ do + msgD info $ "preparing development boot tree" + checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do + testGit "ghcjs-boot" >>= \case +- Just False -> failWith "ghcjs-boot already exists and is not a git repository" +- Just True -> do +- msg info "ghcjs-boot repository already exists but checkpoint not reached, cleaning first, then cloning" +- rm_rf "ghcjs-boot" ++ Just _ -> do ++ msg info "ghcjs-boot repository already exists; initializing ghcjs-boot" + initGhcjsBoot + Nothing -> do + msgD info "cloning ghcjs-boot git repository" + initGhcjsBoot + checkpoint' "shims-git" "shims repository already cloned" $ do + testGit "shims" >>= \case +- Just False -> failWith "shims already exists and is not a git repository" +- Just True -> do +- msgD info "shims repository already exists but checkpoint not reached, cleaning first, then cloning" +- rm_rf "shims" +- cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev ++ Just _ -> do ++ msgD info "shims repository already exists; moving on" + Nothing -> do + msgD info "cloning shims git repository" + cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev + where + initGhcjsBoot = sub $ do +- cloneGit bootDescr "ghcjs-boot" bsrcBootDevBranch bsrcBootDev + cd "ghcjs-boot" +- git_ ["submodule", "update", "--init", "--recursive"] + mapM_ patchPackage =<< allPackages + preparePrimops + buildGenPrim +@@ -1141,7 +1132,7 @@ cabalStage1 pkgs = sub $ do + globalFlags <- cabalGlobalFlags + flags <- cabalInstallFlags (length pkgs == 1) + let args = globalFlags ++ ("install" : pkgs) ++ +- [ "--solver=topdown" -- the modular solver refuses to install stage1 packages ++ [ "--allow-boot-library-installs" + ] ++ map ("--configure-option="<>) configureOpts ++ flags + checkInstallPlan pkgs args + cabal_ args +@@ -1162,7 +1153,7 @@ cabalInstall pkgs = do + -- uses somewhat fragile parsing of --dry-run output, find a better way + checkInstallPlan :: [Package] -> [Text] -> B () + checkInstallPlan pkgs opts = do +- plan <- cabal (opts ++ ["-v2", "--dry-run"]) ++ plan <- cabal (opts ++ ["-vverbose+nowrap", "--dry-run"]) + when (hasReinstalls plan || hasUnexpectedInstalls plan || hasNewVersion plan) (err plan) + where + hasReinstalls = T.isInfixOf "(reinstall)" -- reject reinstalls +@@ -1201,14 +1192,14 @@ cabalInstallFlags parmakeGhcjs = do + , "--avoid-reinstalls" + , "--builddir", "dist" + , "--with-compiler", ghcjs ^. pgmLocText ++ , "--with-gcc", "@CC@" + , "--with-hc-pkg", ghcjsPkg ^. pgmLocText +- , "--prefix", toTextI instDir ++ , "--prefix", "@PREFIX@" ++ , "--libdir", "$prefix/lib/$compiler" ++ , "--libsubdir", "$pkgid" + , bool haddock "--enable-documentation" "--disable-documentation" + , "--haddock-html" +--- workaround for hoogle support being broken in haddock for GHC 7.10RC1 +-#if !(__GLASGOW_HASKELL__ >= 709) + , "--haddock-hoogle" +-#endif + , "--haddock-hyperlink-source" + -- don't slow down Windows builds too much, on other platforms we get this more + -- or less for free, thanks to dynamic-too +diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs +index 33a401f..e2405a7 100644 +--- a/src/Compiler/Info.hs ++++ b/src/Compiler/Info.hs +@@ -48,13 +48,7 @@ compilerInfo nativeToo dflags = do + + -- | the directory to use if started without -B flag + getDefaultTopDir :: IO FilePath +-getDefaultTopDir = do +- appdir <- getAppUserDataDirectory "ghcjs" +- return (appdir </> subdir </> "ghcjs") +- where +- targetARCH = arch +- targetOS = os +- subdir = targetARCH ++ '-':targetOS ++ '-':getFullCompilerVersion ++getDefaultTopDir = return "@PREFIX@/lib/ghcjs-@VERSION@" + + getDefaultLibDir :: IO FilePath + getDefaultLibDir = getDefaultTopDir diff --git a/pkgs/development/compilers/ghcjs/7.10/default.nix b/pkgs/development/compilers/ghcjs/7.10/default.nix new file mode 100644 index 000000000000..f18a094aa3cf --- /dev/null +++ b/pkgs/development/compilers/ghcjs/7.10/default.nix @@ -0,0 +1,50 @@ +{ fetchgit, fetchFromGitHub, bootPkgs, cabal-install }: + +bootPkgs.callPackage ../base.nix { + version = "0.2.0"; + + inherit bootPkgs cabal-install; + + ghcjsSrc = fetchFromGitHub { + owner = "ghcjs"; + repo = "ghcjs"; + rev = "689c7753f50353dd05606ed79c51cd5a94d3922a"; + sha256 = "076020a9gjv8ldj5ckm43sbzq9s6c5xj6lpd8v28ybpiama3m6b4"; + }; + ghcjsBootSrc = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "8c549931da27ba9e607f77195208ec156c840c8a"; + sha256 = "0yg9bnabja39qysh9pg1335qbvbc0r2mdw6cky94p7kavacndfdv"; + fetchSubmodules = true; + }; + + shims = import ./shims.nix { inherit fetchFromGitHub; }; + stage1Packages = [ + "array" + "base" + "binary" + "bytestring" + "containers" + "deepseq" + "directory" + "filepath" + "ghc-boot" + "ghc-boot-th" + "ghc-prim" + "ghci" + "ghcjs-prim" + "ghcjs-th" + "integer-gmp" + "pretty" + "primitive" + "process" + "rts" + "template-haskell" + "time" + "transformers" + "unix" + ]; + stage2 = import ./stage2.nix; + + patches = [ ./boot.patch ]; +} diff --git a/pkgs/development/compilers/ghcjs/7.10/shims.nix b/pkgs/development/compilers/ghcjs/7.10/shims.nix new file mode 100644 index 000000000000..fa706699449a --- /dev/null +++ b/pkgs/development/compilers/ghcjs/7.10/shims.nix @@ -0,0 +1,7 @@ +{ fetchFromGitHub }: +fetchFromGitHub { + owner = "ghcjs"; + repo = "shims"; + rev = "b97015229c58eeab7c1d0bb575794b14a9f6efca"; + sha256 = "1p5adkqvmb1gsv9hnn3if0rdpnaq3v9a1zkfdy282yw05jaaaggz"; +} diff --git a/pkgs/development/compilers/ghcjs/7.10/stage2.nix b/pkgs/development/compilers/ghcjs/7.10/stage2.nix new file mode 100644 index 000000000000..3483afc99ef0 --- /dev/null +++ b/pkgs/development/compilers/ghcjs/7.10/stage2.nix @@ -0,0 +1,344 @@ +{ ghcjsBoot }: { callPackage }: + +{ + async = callPackage + ({ mkDerivation, base, HUnit, stdenv, stm, test-framework + , test-framework-hunit + }: + mkDerivation { + pname = "async"; + version = "2.0.1.6"; + src = "${ghcjsBoot}/boot/async"; + doCheck = false; + libraryHaskellDepends = [ base stm ]; + testHaskellDepends = [ + base HUnit test-framework test-framework-hunit + ]; + jailbreak = true; + homepage = https://github.com/simonmar/async; + description = "Run IO operations asynchronously and wait for their results"; + license = stdenv.lib.licenses.bsd3; + }) {}; + aeson = callPackage + ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq + , dlist, ghc-prim, hashable, HUnit, mtl, QuickCheck, scientific + , stdenv, syb, template-haskell, test-framework + , test-framework-hunit, test-framework-quickcheck2, text, time + , transformers, unordered-containers, vector + }: + mkDerivation { + pname = "aeson"; + version = "0.9.0.1"; + src = "${ghcjsBoot}/boot/aeson"; + doCheck = false; + libraryHaskellDepends = [ + attoparsec base bytestring containers deepseq dlist ghc-prim + hashable mtl scientific syb template-haskell text time transformers + unordered-containers vector + ]; + testHaskellDepends = [ + attoparsec base bytestring containers ghc-prim HUnit QuickCheck + template-haskell test-framework test-framework-hunit + test-framework-quickcheck2 text time unordered-containers vector + ]; + jailbreak = true; + homepage = https://github.com/bos/aeson; + description = "Fast JSON parsing and encoding"; + license = stdenv.lib.licenses.bsd3; + }) {}; + attoparsec = callPackage + ({ mkDerivation, array, base, bytestring, containers, deepseq + , QuickCheck, quickcheck-unicode, scientific, stdenv + , test-framework, test-framework-quickcheck2, text, transformers + , vector + }: + mkDerivation { + pname = "attoparsec"; + version = "0.13.0.1"; + src = "${ghcjsBoot}/boot/attoparsec"; + doCheck = false; + libraryHaskellDepends = [ + array base bytestring containers deepseq scientific text + transformers + ]; + testHaskellDepends = [ + array base bytestring containers deepseq QuickCheck + quickcheck-unicode scientific test-framework + test-framework-quickcheck2 text transformers vector + ]; + jailbreak = true; + homepage = https://github.com/bos/attoparsec; + description = "Fast combinator parsing for bytestrings and text"; + license = stdenv.lib.licenses.bsd3; + }) {}; + case-insensitive = callPackage + ({ mkDerivation, base, bytestring, deepseq, hashable, HUnit, stdenv + , test-framework, test-framework-hunit, text + }: + mkDerivation { + pname = "case-insensitive"; + version = "1.2.0.4"; + src = "${ghcjsBoot}/boot/case-insensitive"; + doCheck = false; + libraryHaskellDepends = [ base bytestring deepseq hashable text ]; + testHaskellDepends = [ + base bytestring HUnit test-framework test-framework-hunit text + ]; + jailbreak = true; + homepage = https://github.com/basvandijk/case-insensitive; + description = "Case insensitive string comparison"; + license = stdenv.lib.licenses.bsd3; + }) {}; + dlist = callPackage + ({ mkDerivation, base, Cabal, deepseq, QuickCheck, stdenv }: + mkDerivation { + pname = "dlist"; + version = "0.7.1.1"; + src = "${ghcjsBoot}/boot/dlist"; + doCheck = false; + libraryHaskellDepends = [ base deepseq ]; + testHaskellDepends = [ base Cabal QuickCheck ]; + jailbreak = true; + homepage = https://github.com/spl/dlist; + description = "Difference lists"; + license = stdenv.lib.licenses.bsd3; + }) {}; + extensible-exceptions = callPackage + ({ mkDerivation, base, stdenv }: + mkDerivation { + pname = "extensible-exceptions"; + version = "0.1.1.4"; + src = "${ghcjsBoot}/boot/extensible-exceptions"; + doCheck = false; + libraryHaskellDepends = [ base ]; + jailbreak = true; + description = "Extensible exceptions"; + license = stdenv.lib.licenses.bsd3; + }) {}; + hashable = callPackage + ({ mkDerivation, base, bytestring, ghc-prim, HUnit, integer-gmp + , QuickCheck, random, stdenv, test-framework, test-framework-hunit + , test-framework-quickcheck2, text, unix + }: + mkDerivation { + pname = "hashable"; + version = "1.2.3.2"; + src = "${ghcjsBoot}/boot/hashable"; + doCheck = false; + libraryHaskellDepends = [ + base bytestring ghc-prim integer-gmp text + ]; + testHaskellDepends = [ + base bytestring ghc-prim HUnit QuickCheck random test-framework + test-framework-hunit test-framework-quickcheck2 text unix + ]; + jailbreak = true; + homepage = https://github.com/tibbe/hashable; + description = "A class for types that can be converted to a hash value"; + license = stdenv.lib.licenses.bsd3; + }) {}; + mtl = callPackage + ({ mkDerivation, base, stdenv, transformers }: + mkDerivation { + pname = "mtl"; + version = "2.2.1"; + src = "${ghcjsBoot}/boot/mtl"; + doCheck = false; + libraryHaskellDepends = [ base transformers ]; + jailbreak = true; + homepage = https://github.com/ekmett/mtl; + description = "Monad classes, using functional dependencies"; + license = stdenv.lib.licenses.bsd3; + }) {}; + old-time = callPackage + ({ mkDerivation, base, old-locale, stdenv }: + mkDerivation { + pname = "old-time"; + version = "1.1.0.3"; + src = "${ghcjsBoot}/boot/old-time"; + doCheck = false; + libraryHaskellDepends = [ base old-locale ]; + jailbreak = true; + description = "Time library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + parallel = callPackage + ({ mkDerivation, array, base, containers, deepseq, stdenv }: + mkDerivation { + pname = "parallel"; + version = "3.2.0.6"; + src = "${ghcjsBoot}/boot/parallel"; + doCheck = false; + libraryHaskellDepends = [ array base containers deepseq ]; + jailbreak = true; + description = "Parallel programming library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + scientific = callPackage + ({ mkDerivation, array, base, bytestring, deepseq, ghc-prim + , hashable, integer-gmp, QuickCheck, smallcheck, stdenv, tasty + , tasty-ant-xml, tasty-hunit, tasty-quickcheck, tasty-smallcheck + , text + }: + mkDerivation { + pname = "scientific"; + version = "0.3.3.8"; + src = "${ghcjsBoot}/boot/scientific"; + doCheck = false; + libraryHaskellDepends = [ + array base bytestring deepseq ghc-prim hashable integer-gmp text + ]; + testHaskellDepends = [ + base bytestring QuickCheck smallcheck tasty tasty-ant-xml + tasty-hunit tasty-quickcheck tasty-smallcheck text + ]; + jailbreak = true; + homepage = https://github.com/basvandijk/scientific; + description = "Numbers represented using scientific notation"; + license = stdenv.lib.licenses.bsd3; + }) {}; + stm = callPackage + ({ mkDerivation, array, base, stdenv }: + mkDerivation { + pname = "stm"; + version = "2.4.4"; + src = "${ghcjsBoot}/boot/stm"; + doCheck = false; + libraryHaskellDepends = [ array base ]; + jailbreak = true; + description = "Software Transactional Memory"; + license = stdenv.lib.licenses.bsd3; + }) {}; + syb = callPackage + ({ mkDerivation, base, containers, HUnit, mtl, stdenv }: + mkDerivation { + pname = "syb"; + version = "0.5.1"; + src = "${ghcjsBoot}/boot/syb"; + doCheck = false; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base containers HUnit mtl ]; + jailbreak = true; + homepage = http://www.cs.uu.nl/wiki/GenericProgramming/SYB; + description = "Scrap Your Boilerplate"; + license = stdenv.lib.licenses.bsd3; + }) {}; + text = callPackage + ({ mkDerivation, array, base, binary, bytestring, deepseq, directory + , ghc-prim, HUnit, integer-gmp, QuickCheck, quickcheck-unicode + , random, stdenv, test-framework, test-framework-hunit + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "text"; + version = "1.2.1.1"; + src = "${ghcjsBoot}/boot/text"; + doCheck = false; + libraryHaskellDepends = [ + array base binary bytestring deepseq ghc-prim integer-gmp + ]; + testHaskellDepends = [ + array base binary bytestring deepseq directory ghc-prim HUnit + integer-gmp QuickCheck quickcheck-unicode random test-framework + test-framework-hunit test-framework-quickcheck2 + ]; + jailbreak = true; + homepage = https://github.com/bos/text; + description = "An efficient packed Unicode text type"; + license = stdenv.lib.licenses.bsd3; + }) {}; + unordered-containers = callPackage + ({ mkDerivation, base, ChasingBottoms, containers, deepseq, hashable + , HUnit, QuickCheck, stdenv, test-framework, test-framework-hunit + , test-framework-quickcheck2 + }: + mkDerivation { + pname = "unordered-containers"; + version = "0.2.5.1"; + src = "${ghcjsBoot}/boot/unordered-containers"; + doCheck = false; + libraryHaskellDepends = [ base deepseq hashable ]; + testHaskellDepends = [ + base ChasingBottoms containers hashable HUnit QuickCheck + test-framework test-framework-hunit test-framework-quickcheck2 + ]; + jailbreak = true; + homepage = https://github.com/tibbe/unordered-containers; + description = "Efficient hashing-based container types"; + license = stdenv.lib.licenses.bsd3; + }) {}; + vector = callPackage + ({ mkDerivation, base, deepseq, ghc-prim, primitive, QuickCheck + , random, stdenv, template-haskell, test-framework + , test-framework-quickcheck2, transformers + }: + mkDerivation { + pname = "vector"; + version = "0.11.0.0"; + src = "${ghcjsBoot}/boot/vector"; + doCheck = false; + libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; + testHaskellDepends = [ + base QuickCheck random template-haskell test-framework + test-framework-quickcheck2 transformers + ]; + jailbreak = true; + homepage = https://github.com/haskell/vector; + description = "Efficient Arrays"; + license = stdenv.lib.licenses.bsd3; + }) {}; + ghcjs-base = callPackage + ({ mkDerivation, aeson, array, attoparsec, base, bytestring + , containers, deepseq, directory, dlist, ghc-prim, ghcjs-prim + , hashable, HUnit, integer-gmp, primitive, QuickCheck + , quickcheck-unicode, random, scientific, stdenv, test-framework + , test-framework-hunit, test-framework-quickcheck2, text, time + , transformers, unordered-containers, vector + }: + mkDerivation { + pname = "ghcjs-base"; + version = "0.2.0.0"; + src = "${ghcjsBoot}/ghcjs/ghcjs-base"; + doCheck = false; + libraryHaskellDepends = [ + aeson attoparsec base bytestring containers deepseq dlist ghc-prim + ghcjs-prim hashable integer-gmp primitive scientific text time + transformers unordered-containers vector + ]; + testHaskellDepends = [ + array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit + primitive QuickCheck quickcheck-unicode random test-framework + test-framework-hunit test-framework-quickcheck2 text + ]; + jailbreak = true; + homepage = https://github.com/ghcjs/ghcjs-base; + description = "Base library for GHCJS"; + license = stdenv.lib.licenses.mit; + }) {}; + Cabal = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, directory, extensible-exceptions, filepath, HUnit + , old-time, pretty, process, QuickCheck, regex-posix, stdenv + , test-framework, test-framework-hunit, test-framework-quickcheck2 + , time, unix + }: + mkDerivation { + pname = "Cabal"; + version = "1.22.8.0"; + src = "${ghcjsBoot}/boot/cabal/Cabal"; + doCheck = false; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + pretty process time unix + ]; + testHaskellDepends = [ + base bytestring containers directory extensible-exceptions filepath + HUnit old-time process QuickCheck regex-posix test-framework + test-framework-hunit test-framework-quickcheck2 unix + ]; + jailbreak = true; + homepage = http://www.haskell.org/cabal/; + description = "A framework for packaging Haskell software"; + license = stdenv.lib.licenses.bsd3; + }) {}; +} |