Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
This commit is contained in:
Yury V. Zaytsev 2013-08-09 09:39:24 +02:00
parent 5cf5885895
commit 16c181f257
3 changed files with 76 additions and 49 deletions

View file

@ -31,7 +31,7 @@ MISSINGH_VERSION="1.2.0.1"
rm -rf MissingH-${MISSINGH_VERSION}
cabal unpack MissingH
cd MissingH-${MISSINGH_VERSION}
#withcyg patch -p1 <../standalone/windows/haskell-patches/MissingH_1.2.0.0-0001-hack-around-strange-build-problem-in-jenkins-autobui.patch
withcyg patch -p1 <../standalone/windows/haskell-patches/ccc5967426a14eb7e8978277ed4fa937f8e0c514.patch
cabal install || true
cd ..

View file

@ -1,48 +0,0 @@
From 93876dea5befa576c1324e25dcf2135ae1705427 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kitenet.net>
Date: Fri, 17 May 2013 13:04:56 -0400
Subject: [PATCH] hack around strange build problem in jenkins autobuilder
src\System\IO\WindowsCompat.hs:123:41:
Couldn't match expected type `System.Time.ClockTime'
with actual type `time-1.4:Data.Time.Clock.UTC.UTCTime'
In the first argument of `clockTimeToEpoch', namely `modct'
In the expression: clockTimeToEpoch modct
In an equation for `epochtime': epochtime = clockTimeToEpoch modct
But it works on Windows here..
---
src/System/IO/WindowsCompat.hs | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/System/IO/WindowsCompat.hs b/src/System/IO/WindowsCompat.hs
index 473490d..0eea21b 100644
--- a/src/System/IO/WindowsCompat.hs
+++ b/src/System/IO/WindowsCompat.hs
@@ -120,8 +119,10 @@ getFileStatus fp =
do isfile <- doesFileExist fp
isdir <- doesDirectoryExist fp
perms <- getPermissions fp
+ {-
modct <- getModificationTime fp
- let epochtime = clockTimeToEpoch modct
+ let epochtime = clockTimeToEpoch $ modct
+ -}
return $ FileStatusCompat {deviceID = -1,
fileID = -1,
fileMode = if isfile then regularFileMode
@@ -131,8 +132,8 @@ getFileStatus fp =
fileGroup = 0,
specialDeviceID = -1,
fileSize = 0, -- fixme: hFileSize?
- accessTime = fromInteger epochtime,
- modificationTime = fromInteger epochtime,
- statusChangeTime = fromInteger epochtime
+ accessTime = undefined, -- fromInteger epochtime,
+ modificationTime = undefined, -- fromInteger epochtime,
+ statusChangeTime = undefined -- fromInteger epochtime
}
#endif
--
1.8.3.rc1

View file

@ -0,0 +1,75 @@
From 017b26c0198d6982e47600b66235d01990e49fef Mon Sep 17 00:00:00 2001
From: mvoidex <voidex@live.com>
Date: Fri, 18 Jan 2013 15:22:03 +0400
Subject: [PATCH 1/2] Fixed error (getModificationTime returns UTCTime, not
ClockTime)
---
src/System/IO/WindowsCompat.hs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/System/IO/WindowsCompat.hs b/src/System/IO/WindowsCompat.hs
index d910dca..38820bb 100644
--- a/src/System/IO/WindowsCompat.hs
+++ b/src/System/IO/WindowsCompat.hs
@@ -56,6 +56,8 @@ import System.IO.StatCompat
import System.Posix.Consts
import System.Time.Utils
import System.Directory
+import Data.Time
+import Data.Time.Clock.POSIX
-- these types aren't defined here
@@ -112,6 +114,9 @@ otherModes = 0o00007
accessModes :: FileMode
accessModes = ownerModes .|. groupModes .|. otherModes
+utcTimeToSeconds :: Num a => UTCTime -> a
+utcTimeToSeconds = fromInteger . floor . utcTimeToPOSIXSeconds
+
----------- stat
type FileStatus = FileStatusCompat
getFileStatus :: FilePath -> IO FileStatus
@@ -120,7 +125,7 @@ getFileStatus fp =
isdir <- doesDirectoryExist fp
perms <- getPermissions fp
modct <- getModificationTime fp
- let epochtime = clockTimeToEpoch modct
+ let epochtime = utcTimeToSeconds modct
return $ FileStatusCompat {deviceID = -1,
fileID = -1,
fileMode = if isfile then regularFileMode
--
1.8.1.6
From 6991e46b613fd929fd8e9bc49ae13c003a3b740c Mon Sep 17 00:00:00 2001
From: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
Date: Sun, 12 May 2013 18:08:16 +1200
Subject: [PATCH 2/2] Fix for older versions of directory (where
getModificationTime still returns ClockTime)
---
src/System/IO/WindowsCompat.hs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/System/IO/WindowsCompat.hs b/src/System/IO/WindowsCompat.hs
index 38820bb..8f7b476 100644
--- a/src/System/IO/WindowsCompat.hs
+++ b/src/System/IO/WindowsCompat.hs
@@ -125,7 +125,11 @@ getFileStatus fp =
isdir <- doesDirectoryExist fp
perms <- getPermissions fp
modct <- getModificationTime fp
+#if MIN_VERSION_directory(1,2,0)
let epochtime = utcTimeToSeconds modct
+#else
+ let epochtime = clockTimeToEpoch modct
+#endif
return $ FileStatusCompat {deviceID = -1,
fileID = -1,
fileMode = if isfile then regularFileMode
--
1.8.1.6