You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-haskell/tar/files/tar-0.3.2.0-dir-1.2.patch

52 lines
1.6 KiB

diff --git a/Codec/Archive/Tar/Pack.hs b/Codec/Archive/Tar/Pack.hs
index 8e43091..3cc96ef 100644
--- a/Codec/Archive/Tar/Pack.hs
+++ b/Codec/Archive/Tar/Pack.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module : Codec.Archive.Tar
@@ -28,8 +29,16 @@ import qualified System.FilePath as FilePath.Native
import System.Directory
( getDirectoryContents, doesDirectoryExist, getModificationTime
, Permissions(..), getPermissions )
+#if MIN_VERSION_directory(1,2,0)
+-- The directory package switched to the new time package
+import Data.Time.Clock
+ ( UTCTime )
+import Data.Time.Clock.POSIX
+ ( utcTimeToPOSIXSeconds )
+#else
import System.Time
( ClockTime(..) )
+#endif
import System.IO
( IOMode(ReadMode), openBinaryFile, hFileSize )
import System.IO.Unsafe (unsafeInterleaveIO)
@@ -170,5 +179,11 @@ recurseDirectories base (dir:dirs) = unsafeInterleaveIO $ do
getModTime :: FilePath -> IO EpochTime
getModTime path = do
+#if MIN_VERSION_directory(1,2,0)
+ -- The directory package switched to the new time package
+ t <- getModificationTime path
+ return . floor . utcTimeToPOSIXSeconds $ t
+#else
(TOD s _) <- getModificationTime path
return $! fromIntegral s
+#endif
diff --git a/tar.cabal b/tar.cabal
index 6467e4b..52e0611 100644
--- a/tar.cabal
+++ b/tar.cabal
@@ -25,7 +25,7 @@ source-repository head
library
build-depends: base >= 3 && < 5, filepath,
- directory, old-time, bytestring
+ directory, old-time, time, bytestring
exposed-modules:
Codec.Archive.Tar