[commit: Cabal] master: 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 (ae8fb08)
Ian Lynagh
igloo at earth.li
Fri Jun 24 02:06:54 CEST 2011
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 <dastapov at gmail.com>
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 ()
More information about the Cvs-libraries
mailing list