--- ToDo: remove this (see #1837)
-resolveDeps :: PackageDBStack -> InstalledPackageInfo -> IO InstalledPackageInfo
-resolveDeps db_stack p = do
- when (not (null unversioned_deps)) $
- hPutStr stderr ("WARNING: unversioned dependencies are deprecated, "++
- "and will NOT be accepted by GHC 6.10: " ++
- unwords (map showPackageId unversioned_deps) ++ "\n")
- return (updateDeps p)
- where
- unversioned_deps = filter (not.realVersion) (depends p)
-
- -- The input package spec is allowed to give a package dependency
- -- without a version number; e.g.
- -- depends: base
- -- Here, we update these dependencies without version numbers to
- -- match the actual versions of the relevant packages installed.
- updateDeps p = p{depends = map resolveDep (depends p)}
-
- resolveDep dep_pkgid
- | realVersion dep_pkgid = dep_pkgid
- | otherwise = lookupDep dep_pkgid
-
- lookupDep dep_pkgid
- = let
- name = pkgName dep_pkgid
- in
- case [ pid | p <- concat (map snd db_stack),
- let pid = package p,
- pkgName pid == name ] of
- (pid:_) -> pid -- Found installed package,
- -- replete with its version
- [] -> dep_pkgid -- No installed package; use
- -- the version-less one
-