git.iko.soy/typeable/cabal2nix
on master help sign in
hackage2nix: show missing dependencies in the overrides list
04ad5f4Peter Simons
src/hackage2nix.hs+8−2
@@ -91,6 +91,9 @@ generatePackage hackage resolver nixpkgs name version descr = do
91 let Just cabalFileHash = lookup "x-cabal-file-hash" (customFieldsPD (packageDescription descr))
91 let Just cabalFileHash = lookup "x-cabal-file-hash" (customFieldsPD (packageDescription descr))
92
92
93 -- TODO: Include list of broken dependencies in the generated output.
93 -- TODO: Include list of broken dependencies in the generated output.
94+ -- Currently, we add overrides that set "pkgname = null", but this is
95+ -- unsatisfactory because these dependencies may very well work when building
96+ -- the same package set with a different GHC version.
94 (missingDeps,drv') <- case cabal2nix resolver descr of
97 (missingDeps,drv') <- case cabal2nix resolver descr of
95 Left ds -> do let Right x = cabal2nix (const True) descr
98 Left ds -> do let Right x = cabal2nix (const True) descr
96 return (ds,x)
99 return (ds,x)
@@ -114,8 +117,11 @@ generatePackage hackage resolver nixpkgs name version descr = do
114 | otherwise = text " inherit (pkgs) " <> hsep (map text (Set.toAscList conflicts)) <> text "; "
117 | otherwise = text " inherit (pkgs) " <> hsep (map text (Set.toAscList conflicts)) <> text "; "
115
118
116 missing :: Set String
119 missing :: Set String
120+ missing = Set.unions
117− missing = Set.union (Set.fromList (filter (not . isKnownNixpkgAttribute nixpkgs hackage) (extraLibs drv ++ pkgConfDeps drv ++ buildTools drv)))
121+ [ Set.fromList (filter (not . isKnownNixpkgAttribute nixpkgs hackage) (extraLibs drv ++ pkgConfDeps drv ++ buildTools drv))
118− (selectMissingHackageNames (Set.fromList (buildDepends drv ++ testDepends drv)))
122+ , selectMissingHackageNames (Set.fromList (buildDepends drv ++ testDepends drv))
123+ , Set.fromList [ n | Dependency (PackageName n) _ <- missingDeps ]
124+ ]
119
125
120 missingOverrides :: Doc
126 missingOverrides :: Doc
121 missingOverrides | Set.null missing = empty
127 missingOverrides | Set.null missing = empty