git.iko.soy/typeable/cabal2nix
on master help sign in
fromGenericPackageDescription: added a horrible hack to restrict the set of known scopes found by the NixpkgsResolver
6530f94Peter Simons
src/Distribution/Nixpkgs/Haskell/FromCabal.hs+5−1
@@ -99,10 +99,14 @@ fromPackageDescription haskellResolver nixpkgsResolver mismatchedDeps missingDep
99 resolveInHackage i | (i^.ident) `elem` [ n | (Dependency (PackageName n) _) <- missingDeps ] = bindNull i
99 resolveInHackage i | (i^.ident) `elem` [ n | (Dependency (PackageName n) _) <- missingDeps ] = bindNull i
100 | otherwise = create binding (i, create path ["self",i]) -- TODO: "self" shouldn't be hardcoded.
100 | otherwise = create binding (i, create path ["self",i]) -- TODO: "self" shouldn't be hardcoded.
101
101
102+ goodScopes :: Set [Identifier]
103+ goodScopes = Set.fromList (map ("pkgs":) [[], ["xlibs"], ["gnome"], ["gnome3"], ["kde4"]])
104+
102 resolveInNixpkgs :: Identifier -> Binding
105 resolveInNixpkgs :: Identifier -> Binding
103 resolveInNixpkgs i
106 resolveInNixpkgs i
104 | i `elem` ["clang","lldb","llvm"] = create binding (i,create path ["self","llvmPackages",i]) -- TODO: evil!
107 | i `elem` ["clang","lldb","llvm"] = create binding (i,create path ["self","llvmPackages",i]) -- TODO: evil!
108+ | Just p <- nixpkgsResolver i, init (view (reference . path) p) `Set.member` goodScopes = p
105− | otherwise = fromMaybe (bindNull i) (nixpkgsResolver i)
109+ | otherwise = bindNull i
106
110
107 resolveInHackageThenNixpkgs :: Identifier -> Binding
111 resolveInHackageThenNixpkgs :: Identifier -> Binding
108 resolveInHackageThenNixpkgs i | haskellResolver (Dependency (PackageName (i^.ident)) anyVersion) = resolveInHackage i
112 resolveInHackageThenNixpkgs i | haskellResolver (Dependency (PackageName (i^.ident)) anyVersion) = resolveInHackage i