Only add tarballs in range

This commit is contained in:
Michael Snoyman 2014-08-27 10:57:59 +03:00
parent 9427662598
commit a8951ec2a0
2 changed files with 9 additions and 11 deletions

View File

@ -541,7 +541,7 @@ defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do
let peg x y = addRange "Haskell Platform" x y let peg x y = addRange "Haskell Platform" x y
peg "aeson" "== 0.7.0.4" peg "aeson" "== 0.7.0.4"
peg "scientific" "== 0.2.0.2" peg "scientific" "== 0.2.0.2"
--peg "criterion" "<= 0.8.1.0" peg "criterion" "<= 0.8.1.0"
peg "tasty-quickcheck" "< 0.8.0.3" peg "tasty-quickcheck" "< 0.8.0.3"
peg "formatting" "< 5.0" peg "formatting" "< 5.0"
peg "parsers" "< 0.11" peg "parsers" "< 0.11"

View File

@ -98,15 +98,9 @@ loadPackageDB settings coreMap core deps underlay = do
_ -> do _ -> do
let pkgname = packageVersionString (p, v) let pkgname = packageVersionString (p, v)
tarball = selectTarballDir settings </> pkgname <.> "tar.gz" tarball = selectTarballDir settings </> pkgname <.> "tar.gz"
exists <- doesFileExist tarball case Tar.entryContent e of
if exists Tar.NormalFile bs _ -> addPackage p v bs pdb
then do _ -> return pdb
lbs <- L.readFile tarball
findCabalAndAddPackage tarball p v pdb $ Tar.read $ GZip.decompress lbs
else
case Tar.entryContent e of
Tar.NormalFile bs _ -> addPackage p v bs pdb
_ -> return pdb
addTarball :: PackageDB -> FilePath -> IO PackageDB addTarball :: PackageDB -> FilePath -> IO PackageDB
addTarball pdb tarball' = do addTarball pdb tarball' = do
@ -115,7 +109,11 @@ loadPackageDB settings coreMap core deps underlay = do
p = PackageName $ reverse $ drop 1 p' p = PackageName $ reverse $ drop 1 p'
v <- maybe (error $ "Invalid tarball name: " ++ tarball) return v <- maybe (error $ "Invalid tarball name: " ++ tarball) return
$ simpleParse $ reverse v' $ simpleParse $ reverse v'
findCabalAndAddPackage tarball p v pdb $ Tar.read $ GZip.decompress lbs case Map.lookup p deps of
Just (vrange, _)
| withinRange v vrange ->
findCabalAndAddPackage tarball p v pdb $ Tar.read $ GZip.decompress lbs
_ -> return pdb
where where
tarball = selectTarballDir settings </> tarball' <.> "tar.gz" tarball = selectTarballDir settings </> tarball' <.> "tar.gz"