From a8951ec2a0df8f1e903d94895c719870433111ef Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 27 Aug 2014 10:57:59 +0300 Subject: [PATCH] Only add tarballs in range --- Stackage/Config.hs | 2 +- Stackage/LoadDatabase.hs | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Stackage/Config.hs b/Stackage/Config.hs index 2fe61e57..fe1a026a 100644 --- a/Stackage/Config.hs +++ b/Stackage/Config.hs @@ -541,7 +541,7 @@ defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do let peg x y = addRange "Haskell Platform" x y peg "aeson" "== 0.7.0.4" 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 "formatting" "< 5.0" peg "parsers" "< 0.11" diff --git a/Stackage/LoadDatabase.hs b/Stackage/LoadDatabase.hs index 441d797d..cabf65e4 100644 --- a/Stackage/LoadDatabase.hs +++ b/Stackage/LoadDatabase.hs @@ -98,15 +98,9 @@ loadPackageDB settings coreMap core deps underlay = do _ -> do let pkgname = packageVersionString (p, v) tarball = selectTarballDir settings pkgname <.> "tar.gz" - exists <- doesFileExist tarball - if exists - then do - 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 + case Tar.entryContent e of + Tar.NormalFile bs _ -> addPackage p v bs pdb + _ -> return pdb addTarball :: PackageDB -> FilePath -> IO PackageDB addTarball pdb tarball' = do @@ -115,7 +109,11 @@ loadPackageDB settings coreMap core deps underlay = do p = PackageName $ reverse $ drop 1 p' v <- maybe (error $ "Invalid tarball name: " ++ tarball) return $ 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 tarball = selectTarballDir settings tarball' <.> "tar.gz"