Fix missing dependencies for Stage2 packages
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 21 May 2016 01:23:31 +0000 (02:23 +0100)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 21 May 2016 01:23:31 +0000 (02:23 +0100)
Fix #240.

src/Rules/Cabal.hs
src/Rules/Data.hs

index 05078fc..82edb3a 100644 (file)
@@ -28,7 +28,7 @@ cabalRules = do
 
     -- Cache package dependencies
     packageDependencies %> \out -> do
-        pkgs <- interpretInContext (stageContext Stage1) getPackages
+        let pkgs = knownPackages \\ [hp2ps, libffi, touchy, unlit]
         pkgDeps <- forM (sort pkgs) $ \pkg ->
             if pkg == rts
             then return $ pkgNameString pkg
index 8512c3a..2ecfb37 100644 (file)
@@ -31,10 +31,12 @@ buildPackageData context@Context {..} = do
         whenM (doesFileExist $ configure <.> "ac") $ need [configure]
 
         -- Before we configure a package its dependencies need to be registered
+        let depStage   = min stage Stage1 -- dependencies come from Stage0/1
+            depContext = vanillaContext depStage
         deps <- packageDeps package
-        pkgs <- interpretInContext context getPackages
+        pkgs <- interpretInContext (depContext package) getPackages
         let depPkgs = matchPackageNames (sort pkgs) deps
-        need =<< traverse (pkgConfFile . vanillaContext stage) depPkgs
+        need =<< traverse (pkgConfFile . depContext) depPkgs
 
         need [cabalFile]
         build $ Target context GhcCabal [cabalFile] [mk]