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

Reply via email to