Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/ae8fb083aacf3cdd24fd362b241c5dea87cf02f2 >--------------------------------------------------------------- commit ae8fb083aacf3cdd24fd362b241c5dea87cf02f2 Author: Dmitry Astapov <[email protected]> Date: Tue Oct 26 21:26:06 2010 +0000 Use "maybeDecompress" to handle broken proxies that transparenty decompress network streams. Closes #622, #686. Cabal update could fail in some cases, see http://trac.haskell.org/http/ticket/109283 >--------------------------------------------------------------- cabal-install/Distribution/Client/IndexUtils.hs | 4 ++-- cabal-install/Distribution/Client/Tar.hs | 5 +++-- cabal-install/Distribution/Client/Update.hs | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs index 65c264b..b16870a 100644 --- a/cabal-install/Distribution/Client/IndexUtils.hs +++ b/cabal-install/Distribution/Client/IndexUtils.hs @@ -62,7 +62,7 @@ import Control.Exception (evaluate) import qualified Data.ByteString.Lazy as BS import qualified Data.ByteString.Lazy.Char8 as BS.Char8 import Data.ByteString.Lazy (ByteString) -import qualified Codec.Compression.GZip as GZip (decompress) +import Distribution.Client.GZipUtils (maybeDecompress) import System.FilePath ((</>), takeExtension, splitDirectories, normalise) import System.FilePath.Posix as FilePath.Posix ( takeFileName ) @@ -218,7 +218,7 @@ readPackageIndexFile :: Package pkg readPackageIndexFile mkPkg indexFile = do pkgs <- either fail return . parseRepoIndex - . GZip.decompress + . maybeDecompress =<< BS.readFile indexFile evaluate $ PackageIndex.fromList diff --git a/cabal-install/Distribution/Client/Tar.hs b/cabal-install/Distribution/Client/Tar.hs index ff7f254..f80509f 100644 --- a/cabal-install/Distribution/Client/Tar.hs +++ b/cabal-install/Distribution/Client/Tar.hs @@ -68,6 +68,7 @@ import qualified Data.ByteString.Lazy as BS import qualified Data.ByteString.Lazy.Char8 as BS.Char8 import Data.ByteString.Lazy (ByteString) import qualified Codec.Compression.GZip as GZip +import qualified Distribution.Client.GZipUtils as GZipUtils import System.FilePath ( (</>) ) @@ -105,8 +106,8 @@ extractTarGzFile :: FilePath -- ^ Destination directory -> FilePath -- ^ Expected subdir (to check for tarbombs) -> FilePath -- ^ Tarball -> IO () -extractTarGzFile dir expected tar = - unpack dir . checkTarbomb expected . read . GZip.decompress =<< BS.readFile tar +extractTarGzFile dir expected tar = do + unpack dir . checkTarbomb expected . read . GZipUtils.maybeDecompress =<< BS.readFile tar -- -- * Entry type diff --git a/cabal-install/Distribution/Client/Update.hs b/cabal-install/Distribution/Client/Update.hs index 6288b34..87f10fa 100644 --- a/cabal-install/Distribution/Client/Update.hs +++ b/cabal-install/Distribution/Client/Update.hs @@ -35,7 +35,7 @@ import Distribution.Verbosity import qualified Data.ByteString.Lazy as BS import qualified Data.ByteString.Lazy.Char8 as BS.Char8 -import qualified Codec.Compression.GZip as GZip (decompress) +import Distribution.Client.GZipUtils (maybeDecompress) import qualified Data.Map as Map import System.FilePath (dropExtension) import Data.Maybe (fromMaybe) @@ -58,7 +58,7 @@ updateRepo verbosity repo = case repoKind repo of ++ remoteRepoName remoteRepo indexPath <- downloadIndex verbosity remoteRepo (repoLocalDir repo) writeFileAtomic (dropExtension indexPath) . BS.Char8.unpack - . GZip.decompress + . maybeDecompress =<< BS.readFile indexPath checkForSelfUpgrade :: Verbosity -> [Repo] -> IO () _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
