summary refs log tree commit diff
path: root/pkgs/development/compilers/ghcjs
diff options
context:
space:
mode:
authorMoritz Kiefer <moritz.kiefer@purelyfunctional.org>2017-08-11 22:14:01 +0200
committerMoritz Kiefer <moritz.kiefer@purelyfunctional.org>2017-08-11 22:14:01 +0200
commit03b4cab963942942e57582c9dd016f9f8bda4f6f (patch)
tree9c4e955538f9c071241975f8b978f9b8746d77f6 /pkgs/development/compilers/ghcjs
parentb224644795bc2601da244b0e708ca7754bac64d4 (diff)
downloadnixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar.gz
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar.bz2
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar.lz
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar.xz
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.tar.zst
nixlib-03b4cab963942942e57582c9dd016f9f8bda4f6f.zip
haskell: fix ghcjs build with cabal-install-2.0
Diffstat (limited to 'pkgs/development/compilers/ghcjs')
-rw-r--r--pkgs/development/compilers/ghcjs/ghcjs.patch24
1 files changed, 21 insertions, 3 deletions
diff --git a/pkgs/development/compilers/ghcjs/ghcjs.patch b/pkgs/development/compilers/ghcjs/ghcjs.patch
index 61bbb95b0a58..9f4fa3a8b7ae 100644
--- a/pkgs/development/compilers/ghcjs/ghcjs.patch
+++ b/pkgs/development/compilers/ghcjs/ghcjs.patch
@@ -2,7 +2,7 @@ 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
-@@ -526,9 +526,7 @@ initPackageDB :: B ()
+@@ -540,9 +540,7 @@ initPackageDB :: B ()
  initPackageDB = do
    msg info "creating package databases"
    initDB "--global" <^> beLocations . blGlobalDB
@@ -12,7 +12,7 @@ index db8b12e..7b815c5 100644
      initDB dbName db = do
        rm_rf db >> mkdir_p db
        ghcjs_pkg_ ["init", toTextI db] `catchAny_` return ()
-@@ -552,29 +550,22 @@ installDevelopmentTree = subTop $ do
+@@ -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
@@ -46,7 +46,25 @@ index db8b12e..7b815c5 100644
        mapM_ patchPackage =<< allPackages
        preparePrimops
        buildGenPrim
-@@ -1110,14 +1101,14 @@ cabalInstallFlags parmakeGhcjs = do
+@@ -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