From 47f13c3f3db57aa54dc6b3d5f773653d62e3c1f9 Mon Sep 17 00:00:00 2001 From: Dylan Simon Date: Mon, 15 May 2017 15:53:53 -0400 Subject: [PATCH] Compatibility with ghc 7.10, at least for library Disable executables for now --- Codec/Archive/Zip/Conduit/Zip.hs | 5 ++-- zip-stream.cabal | 50 ++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/Codec/Archive/Zip/Conduit/Zip.hs b/Codec/Archive/Zip/Conduit/Zip.hs index 4e47682..6cfbe7e 100644 --- a/Codec/Archive/Zip/Conduit/Zip.hs +++ b/Codec/Archive/Zip/Conduit/Zip.hs @@ -32,7 +32,6 @@ import qualified Data.Conduit.Zlib as CZ import Data.Digest.CRC32 (crc32) import Data.Either (isLeft) import Data.Maybe (fromMaybe, fromJust) -import Data.Monoid ((<>)) import Data.Time (LocalTime(..), TimeOfDay(..), toGregorian) import Data.Word (Word16, Word64) @@ -95,7 +94,7 @@ maxBound16 = fromIntegral (maxBound :: Word16) -- Any errors are thrown in the underlying monad (as 'ZipError's). zipStream :: (MonadBase b m, PrimMonad b, MonadThrow m) => ZipOptions -> C.ConduitM (ZipEntry, ZipData m) BS.ByteString m Word64 zipStream ZipOptions{..} = execStateC 0 $ do - (cnt, cdir) <- next 0 (mempty :: P.Put) + (cnt, cdir) <- next 0 (return ()) cdoff <- get output cdir eoff <- get @@ -105,7 +104,7 @@ zipStream ZipOptions{..} = execStateC 0 $ do (return (cnt, dir)) (\e -> do d <- entry e - next (succ cnt) $ dir <> d) + next (succ cnt) $ dir >> d) entry (ZipEntry{..}, zipData -> dat) = do let usiz = dataSize dat sdat = left ((C..| sizeCRC) . C.toProducer) dat diff --git a/zip-stream.cabal b/zip-stream.cabal index 59f3de3..7352518 100644 --- a/zip-stream.cabal +++ b/zip-stream.cabal @@ -15,6 +15,10 @@ source-repository head type: git location: https://github.com/dylex/zip-stream +flag commands + description: Build command-line zip/unzip testing programs + default: True + library exposed-modules: Codec.Archive.Zip.Conduit.Types @@ -41,32 +45,40 @@ library zlib executable unzip-stream + if !flag(commands) + buildable: False main-is: unzip.hs hs-source-dirs: cmd default-language: Haskell2010 ghc-options: -Wall - build-depends: - base >=4.7 && <5, - bytestring, - conduit, - conduit-extra, - directory, - filepath, - time, - zip-stream + if flag(commands) + build-depends: + base >=4.9 && <5, + bytestring, + conduit, + conduit-extra, + directory >= 1.2.3, + filepath, + time, + zip-stream + else + buildable: False executable zip-stream main-is: zip.hs hs-source-dirs: cmd default-language: Haskell2010 ghc-options: -Wall - build-depends: - base >=4.7 && <5, - bytestring, - conduit, - conduit-extra, - directory, - filepath, - resourcet, - time, - zip-stream + if flag(commands) + build-depends: + base >=4.9 && <5, + bytestring, + conduit, + conduit-extra, + directory >= 1.2.6, + filepath, + resourcet, + time, + zip-stream + else + buildable: False