Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-unix-compat for openSUSE:Factory 
checked in at 2021-02-16 22:37:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-unix-compat (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-unix-compat.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-unix-compat"

Tue Feb 16 22:37:40 2021 rev:20 rq:870465 version:0.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-unix-compat/ghc-unix-compat.changes  
2020-12-22 11:48:20.245953429 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-unix-compat.new.28504/ghc-unix-compat.changes   
    2021-02-16 22:45:47.326369562 +0100
@@ -1,0 +2,6 @@
+Sun Jan 24 16:08:26 UTC 2021 - psim...@suse.com
+
+- Update unix-compat to version 0.5.3.
+  Upstream does not provide a change log file.
+
+-------------------------------------------------------------------

Old:
----
  unix-compat-0.5.2.tar.gz
  unix-compat.cabal

New:
----
  unix-compat-0.5.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-unix-compat.spec ++++++
--- /var/tmp/diff_new_pack.bAaDGy/_old  2021-02-16 22:45:48.094370572 +0100
+++ /var/tmp/diff_new_pack.bAaDGy/_new  2021-02-16 22:45:48.098370577 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-unix-compat
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,13 +18,12 @@
 
 %global pkg_name unix-compat
 Name:           ghc-%{pkg_name}
-Version:        0.5.2
+Version:        0.5.3
 Release:        0
 Summary:        Portable POSIX-compatibility layer
 License:        BSD-3-Clause
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-rpm-macros
 BuildRequires:  ghc-unix-devel
@@ -47,7 +46,6 @@
 
 %prep
 %autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ unix-compat-0.5.2.tar.gz -> unix-compat-0.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unix-compat-0.5.2/src/System/PosixCompat/Files.hsc 
new/unix-compat-0.5.3/src/System/PosixCompat/Files.hsc
--- old/unix-compat-0.5.2/src/System/PosixCompat/Files.hsc      2001-09-09 
03:46:40.000000000 +0200
+++ new/unix-compat-0.5.3/src/System/PosixCompat/Files.hsc      2001-09-09 
03:46:40.000000000 +0200
@@ -59,6 +59,9 @@
     , accessTime
     , modificationTime
     , statusChangeTime
+    , accessTimeHiRes
+    , modificationTimeHiRes
+    , statusChangeTimeHiRes
     , isBlockDevice
     , isCharacterDevice
     , isNamedPipe
@@ -120,6 +123,7 @@
 import Control.Monad (liftM, liftM2)
 import Data.Bits ((.|.), (.&.))
 import Data.Int (Int64)
+import Data.Time.Clock.POSIX (POSIXTime)
 import Foreign.C.Types (CTime(..))
 import Prelude hiding (read)
 import System.Directory (Permissions, emptyPermissions)
@@ -129,8 +133,7 @@
 import System.Directory (executable, setOwnerExecutable)
 import System.Directory (searchable, setOwnerSearchable)
 import System.Directory (doesFileExist, doesDirectoryExist)
-import System.Directory (getModificationTime, renameFile)
-import System.IO (IOMode(..), openFile, hFileSize, hSetFileSize, hClose)
+import System.IO (IOMode(..), openFile, hSetFileSize, hClose)
 import System.IO.Error
 import System.PosixCompat.Types
 import System.Win32.File hiding (getFileType)
@@ -139,7 +142,6 @@
 
 import System.PosixCompat.Internal.Time (
       getClockTime, clockTimeToEpochTime
-    , modificationTimeToEpochTime
     )
 
 #ifdef __GLASGOW_HASKELL__
@@ -267,17 +269,20 @@
 -- stat() support
 
 data FileStatus = FileStatus
-    { deviceID         :: DeviceID
-    , fileID           :: FileID
-    , fileMode         :: FileMode
-    , linkCount        :: LinkCount
-    , fileOwner        :: UserID
-    , fileGroup        :: GroupID
-    , specialDeviceID  :: DeviceID
-    , fileSize         :: FileOffset
-    , accessTime       :: EpochTime
-    , modificationTime :: EpochTime
-    , statusChangeTime :: EpochTime
+    { deviceID              :: DeviceID
+    , fileID                :: FileID
+    , fileMode              :: FileMode
+    , linkCount             :: LinkCount
+    , fileOwner             :: UserID
+    , fileGroup             :: GroupID
+    , specialDeviceID       :: DeviceID
+    , fileSize              :: FileOffset
+    , accessTime            :: EpochTime
+    , modificationTime      :: EpochTime
+    , statusChangeTime      :: EpochTime
+    , accessTimeHiRes       :: POSIXTime
+    , modificationTimeHiRes :: POSIXTime
+    , statusChangeTimeHiRes :: POSIXTime
     }
 
 isBlockDevice :: FileStatus -> Bool
@@ -312,9 +317,10 @@
 getFileStatus path = do
     perm  <- liftM permsToMode (getPermissions path)
     typ   <- getFileType path
-    size  <- if typ == regularFileMode then getFileSize path else return 0
-    mtime <- liftM modificationTimeToEpochTime (getModificationTime path)
     info  <- bracket openPath closeHandle getFileInformationByHandle
+    let atime = windowsToPosixTime (bhfiLastAccessTime info)
+        mtime = windowsToPosixTime (bhfiLastWriteTime info)
+        ctime = windowsToPosixTime (bhfiCreationTime info)
     return $ FileStatus
              { deviceID         = fromIntegral (bhfiVolumeSerialNumber info)
              , fileID           = fromIntegral (bhfiFileIndex info)
@@ -323,10 +329,14 @@
              , fileOwner        = 0
              , fileGroup        = 0
              , specialDeviceID  = 0
-             , fileSize         = size
-             , accessTime       = mtime
-             , modificationTime = mtime
-             , statusChangeTime = mtime }
+             , fileSize         = fromIntegral (bhfiSize info)
+             , accessTime       = posixTimeToEpochTime atime
+             , modificationTime = posixTimeToEpochTime mtime
+             , statusChangeTime = posixTimeToEpochTime mtime
+             , accessTimeHiRes       = atime
+             , modificationTimeHiRes = mtime
+             , statusChangeTimeHiRes = ctime
+             }
   where
     openPath = createFile path
                  gENERIC_READ
@@ -336,6 +346,32 @@
                  (sECURITY_ANONYMOUS .|. fILE_FLAG_BACKUP_SEMANTICS)
                  Nothing
 
+-- | Convert a 'POSIXTime' (synomym for 'Data.Time.Clock.NominalDiffTime')
+-- into an 'EpochTime' (integral number of seconds since epoch). This merely
+-- throws away the fractional part.
+posixTimeToEpochTime :: POSIXTime -> EpochTime
+posixTimeToEpochTime = fromInteger . floor
+
+-- three function stolen from System.Directory.Internals.Windows:
+
+-- | Difference between the Windows and POSIX epochs in units of 100ns.
+windowsPosixEpochDifference :: Num a => a
+windowsPosixEpochDifference = 116444736000000000
+
+-- | Convert from Windows time to POSIX time.
+windowsToPosixTime :: FILETIME -> POSIXTime
+windowsToPosixTime (FILETIME t) =
+  (fromIntegral t - windowsPosixEpochDifference) / 10000000
+
+{- will be needed to /set/ high res timestamps, not yet supported
+
+-- | Convert from POSIX time to Windows time.  This is lossy as Windows time
+--   has a resolution of only 100ns.
+posixToWindowsTime :: POSIXTime -> FILETIME
+posixToWindowsTime t = FILETIME $
+  truncate (t * 10000000 + windowsPosixEpochDifference)
+-}
+
 permsToMode :: Permissions -> FileMode
 permsToMode perms = r .|. w .|. x
   where
@@ -354,10 +390,6 @@
                     if d then return directoryMode
                          else unsupported "Unknown file type."
 
-getFileSize :: FilePath -> IO FileOffset
-getFileSize path =
-    bracket (openFile path ReadMode) hClose (liftM fromIntegral . hFileSize)
-
 getFdStatus :: Fd -> IO FileStatus
 getFdStatus _ = unsupported "getFdStatus"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/unix-compat-0.5.2/src/System/PosixCompat/Internal/Time.hs 
new/unix-compat-0.5.3/src/System/PosixCompat/Internal/Time.hs
--- old/unix-compat-0.5.2/src/System/PosixCompat/Internal/Time.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/unix-compat-0.5.3/src/System/PosixCompat/Internal/Time.hs       
2001-09-09 03:46:40.000000000 +0200
@@ -7,8 +7,6 @@
       ClockTime
     , getClockTime
     , clockTimeToEpochTime
-    , ModificationTime
-    , modificationTimeToEpochTime
     ) where
 
 import System.Posix.Types (EpochTime)
@@ -20,15 +18,9 @@
 clockTimeToEpochTime :: ClockTime -> EpochTime
 clockTimeToEpochTime (TOD s _) = fromInteger s
 
-type ModificationTime = ClockTime
-
-modificationTimeToEpochTime :: ModificationTime -> EpochTime
-modificationTimeToEpochTime = clockTimeToEpochTime
-
 #else
 
-import Data.Time.Clock (UTCTime)
-import Data.Time.Clock.POSIX (POSIXTime, getPOSIXTime, utcTimeToPOSIXSeconds)
+import Data.Time.Clock.POSIX (POSIXTime, getPOSIXTime)
 
 type ClockTime = POSIXTime
 
@@ -38,9 +30,4 @@
 clockTimeToEpochTime :: ClockTime -> EpochTime
 clockTimeToEpochTime = fromInteger . floor
 
-type ModificationTime = UTCTime
-
-modificationTimeToEpochTime :: UTCTime -> EpochTime
-modificationTimeToEpochTime = clockTimeToEpochTime . utcTimeToPOSIXSeconds
-
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unix-compat-0.5.2/src/System/PosixCompat/Types.hs 
new/unix-compat-0.5.3/src/System/PosixCompat/Types.hs
--- old/unix-compat-0.5.2/src/System/PosixCompat/Types.hs       2001-09-09 
03:46:40.000000000 +0200
+++ new/unix-compat-0.5.3/src/System/PosixCompat/Types.hs       2001-09-09 
03:46:40.000000000 +0200
@@ -8,14 +8,11 @@
 redefined by this module.
 -}
 module System.PosixCompat.Types (
+      module System.Posix.Types
 #ifdef mingw32_HOST_OS
-     module AllPosixTypesButFileID
-    , FileID
     , UserID
     , GroupID
     , LinkCount
-#else
-     module System.Posix.Types
 #endif
     ) where
 
@@ -23,15 +20,9 @@
 -- Since CIno (FileID's underlying type) reflects <sys/type.h> ino_t,
 -- which mingw defines as short int (int16), it must be overriden to
 -- match the size of windows fileIndex (word64).
-import System.Posix.Types as AllPosixTypesButFileID hiding (FileID)
+import System.Posix.Types
 
-import Data.Word (Word32, Word64)
-
-newtype FileID = FileID Word64
-  deriving (Eq, Ord, Enum, Bounded, Integral, Num, Real)
-instance Show FileID where show (FileID x) = show x
-instance Read FileID where readsPrec i s = [ (FileID x, s')
-                                           | (x,s') <- readsPrec i s]
+import Data.Word (Word32)
 
 newtype UserID = UserID Word32
   deriving (Eq, Ord, Enum, Bounded, Integral, Num, Real)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unix-compat-0.5.2/unix-compat.cabal 
new/unix-compat-0.5.3/unix-compat.cabal
--- old/unix-compat-0.5.2/unix-compat.cabal     2001-09-09 03:46:40.000000000 
+0200
+++ new/unix-compat-0.5.3/unix-compat.cabal     2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,5 @@
 name:           unix-compat
-version:        0.5.2
+version:        0.5.3
 synopsis:       Portable POSIX-compatibility layer.
 description:    This package provides portable implementations of parts
                 of the unix package. This package re-exports the unix
@@ -13,7 +13,7 @@
 maintainer:     Jacob Stanley <ja...@stanley.io>
 category:       System
 build-type:     Simple
-cabal-version:  >= 1.6
+cabal-version:  >= 1.10
 
 source-repository head
   type:     git
@@ -24,6 +24,7 @@
   default: False
 
 Library
+  default-language: Haskell2010
   hs-source-dirs: src
   ghc-options: -Wall
   build-depends: base == 4.*
@@ -56,7 +57,7 @@
       else
         build-depends: directory == 1.1.*
     else
-      build-depends: time >= 1.0 && < 1.9
+      build-depends: time >= 1.0 && < 1.10
       build-depends: directory >= 1.2 && < 1.4
 
     other-modules:

Reply via email to