Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-fast-logger for openSUSE:Factory 
checked in at 2021-05-05 20:40:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-fast-logger (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-fast-logger.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-fast-logger"

Wed May  5 20:40:29 2021 rev:25 rq:890697 version:3.0.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-fast-logger/ghc-fast-logger.changes  
2021-03-10 08:56:46.446859182 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-fast-logger.new.2988/ghc-fast-logger.changes    
    2021-05-05 20:40:54.258679659 +0200
@@ -1,0 +2,17 @@
+Fri Apr 30 08:30:09 UTC 2021 - psim...@suse.com
+
+- Update fast-logger to version 3.0.5.
+  ## 3.0.5
+
+  * recovering backward compatibility for newFileLoggerSet.
+
+-------------------------------------------------------------------
+Wed Apr 28 08:49:15 UTC 2021 - psim...@suse.com
+
+- Update fast-logger to version 3.0.4.
+  ## 3.0.4
+
+  * New API: `newFastLogger1` which use only one capability.
+  * Making `FD` safer with `invalidFD`.
+
+-------------------------------------------------------------------

Old:
----
  fast-logger-3.0.3.tar.gz

New:
----
  fast-logger-3.0.5.tar.gz

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

Other differences:
------------------
++++++ ghc-fast-logger.spec ++++++
--- /var/tmp/diff_new_pack.FXZVEo/_old  2021-05-05 20:40:54.754677475 +0200
+++ /var/tmp/diff_new_pack.FXZVEo/_new  2021-05-05 20:40:54.762677440 +0200
@@ -19,7 +19,7 @@
 %global pkg_name fast-logger
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        3.0.3
+Version:        3.0.5
 Release:        0
 Summary:        A fast logging system
 License:        BSD-3-Clause

++++++ fast-logger-3.0.3.tar.gz -> fast-logger-3.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/ChangeLog.md 
new/fast-logger-3.0.5/ChangeLog.md
--- old/fast-logger-3.0.3/ChangeLog.md  2021-02-17 02:02:54.000000000 +0100
+++ new/fast-logger-3.0.5/ChangeLog.md  2021-04-30 07:48:58.000000000 +0200
@@ -1,3 +1,12 @@
+## 3.0.5
+
+* recovering backward compatibility for newFileLoggerSet.
+
+## 3.0.4
+
+* New API: `newFastLogger1` which use only one capability.
+* Making `FD` safer with `invalidFD`.
+
 ## 3.0.3
 
 * Dropping support of GHC 7.x.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/System/Log/FastLogger/FileIO.hs 
new/fast-logger-3.0.5/System/Log/FastLogger/FileIO.hs
--- old/fast-logger-3.0.3/System/Log/FastLogger/FileIO.hs       2021-02-17 
02:02:54.000000000 +0100
+++ new/fast-logger-3.0.5/System/Log/FastLogger/FileIO.hs       2021-04-30 
07:48:58.000000000 +0200
@@ -25,4 +25,13 @@
 writeRawBufferPtr2FD :: IORef FD -> Ptr Word8 -> Int -> IO Int
 writeRawBufferPtr2FD fdref bf len = do
     fd <- readIORef fdref
-    fromIntegral <$> writeRawBufferPtr "write" fd bf 0 (fromIntegral len)
+    if isFDValid fd then
+        fromIntegral <$> writeRawBufferPtr "write" fd bf 0 (fromIntegral len)
+      else
+        return (-1)
+
+invalidFD :: POSIX.FD
+invalidFD = stdout { POSIX.fdFD = -1 }
+
+isFDValid :: POSIX.FD -> Bool
+isFDValid fd = POSIX.fdFD fd /= -1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/System/Log/FastLogger/Logger.hs 
new/fast-logger-3.0.5/System/Log/FastLogger/Logger.hs
--- old/fast-logger-3.0.3/System/Log/FastLogger/Logger.hs       2021-02-17 
02:02:54.000000000 +0100
+++ new/fast-logger-3.0.5/System/Log/FastLogger/Logger.hs       2021-04-30 
07:48:58.000000000 +0200
@@ -83,5 +83,5 @@
   where
     loop bf !len = do
         written <- writeRawBufferPtr2FD fdref bf len
-        when (written < len) $
+        when (0 <= written && written < len) $
             loop (bf `plusPtr` fromIntegral written) (len - written)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/System/Log/FastLogger/LoggerSet.hs 
new/fast-logger-3.0.5/System/Log/FastLogger/LoggerSet.hs
--- old/fast-logger-3.0.3/System/Log/FastLogger/LoggerSet.hs    2021-02-17 
02:02:54.000000000 +0100
+++ new/fast-logger-3.0.5/System/Log/FastLogger/LoggerSet.hs    2021-04-30 
07:48:58.000000000 +0200
@@ -4,6 +4,7 @@
   -- * Creating a logger set
     LoggerSet
   , newFileLoggerSet
+  , newFileLoggerSetN
   , newStdoutLoggerSet
   , newStderrLoggerSet
   , newLoggerSet
@@ -39,28 +40,34 @@
 
 -- | Creating a new 'LoggerSet' using a file.
 newFileLoggerSet :: BufSize -> FilePath -> IO LoggerSet
-newFileLoggerSet size file = openFileFD file >>= newFDLoggerSet size (Just 
file)
+newFileLoggerSet size file = openFileFD file >>= newFDLoggerSet size Nothing 
(Just file)
+
+-- | Creating a new 'LoggerSet' using a file.
+newFileLoggerSetN :: BufSize -> Maybe Int -> FilePath -> IO LoggerSet
+newFileLoggerSetN size mn file = openFileFD file >>= newFDLoggerSet size mn 
(Just file)
 
 -- | Creating a new 'LoggerSet' using stdout.
 newStdoutLoggerSet :: BufSize -> IO LoggerSet
-newStdoutLoggerSet size = getStdoutFD >>= newFDLoggerSet size Nothing
+newStdoutLoggerSet size = getStdoutFD >>= newFDLoggerSet size Nothing Nothing
 
 -- | Creating a new 'LoggerSet' using stderr.
 newStderrLoggerSet :: BufSize -> IO LoggerSet
-newStderrLoggerSet size = getStderrFD >>= newFDLoggerSet size Nothing
+newStderrLoggerSet size = getStderrFD >>= newFDLoggerSet size Nothing Nothing
 
 {-# DEPRECATED newLoggerSet "Use newFileLoggerSet etc instead" #-}
 -- | Creating a new 'LoggerSet'.
 --   If 'Nothing' is specified to the second argument,
 --   stdout is used.
 --   Please note that the minimum 'BufSize' is 1.
-newLoggerSet :: BufSize -> Maybe FilePath -> IO LoggerSet
-newLoggerSet size = maybe (newStdoutLoggerSet size) (newFileLoggerSet size)
+newLoggerSet :: BufSize -> Maybe Int -> Maybe FilePath -> IO LoggerSet
+newLoggerSet size mn = maybe (newStdoutLoggerSet size) (newFileLoggerSetN size 
mn)
 
 -- | Creating a new 'LoggerSet' using a FD.
-newFDLoggerSet :: BufSize -> Maybe FilePath -> FD -> IO LoggerSet
-newFDLoggerSet size mfile fd = do
-    n <- getNumCapabilities
+newFDLoggerSet :: BufSize -> Maybe Int -> Maybe FilePath -> FD -> IO LoggerSet
+newFDLoggerSet size mn mfile fd = do
+    n <- case mn of
+      Just n' -> return n'
+      Nothing -> getNumCapabilities
     loggers <- replicateM n $ newLogger (max 1 size)
     let arr = listArray (0,n-1) loggers
     fref <- newIORef fd
@@ -121,12 +128,14 @@
 --   and freeing the buffers.
 rmLoggerSet :: LoggerSet -> IO ()
 rmLoggerSet (LoggerSet mfile fdref arr _) = do
-    let (l,u) = bounds arr
-    let nums = [l .. u]
-    mapM_ flushIt nums
-    mapM_ freeIt nums
     fd <- readIORef fdref
-    when (isJust mfile) $ closeFD fd
+    when (isFDValid fd) $ do
+        let (l,u) = bounds arr
+        let nums = [l .. u]
+        mapM_ flushIt nums
+        mapM_ freeIt nums
+        when (isJust mfile) $ closeFD fd
+        writeIORef fdref invalidFD
   where
     flushIt i = flushLog fdref (arr ! i)
     freeIt i = do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/System/Log/FastLogger.hs 
new/fast-logger-3.0.5/System/Log/FastLogger.hs
--- old/fast-logger-3.0.3/System/Log/FastLogger.hs      2021-02-17 
02:02:54.000000000 +0100
+++ new/fast-logger-3.0.5/System/Log/FastLogger.hs      2021-04-30 
07:48:58.000000000 +0200
@@ -15,6 +15,7 @@
   , LogType
   , LogType'(..)
   , newFastLogger
+  , newFastLogger1
   , withFastLogger
   -- * Timed FastLogger
   , TimedFastLogger
@@ -101,11 +102,17 @@
 --
 -- > newFastLogger :: LogType -> IO (FastLogger, IO ())
 newFastLogger :: LogType' v -> IO (v -> IO (), IO ())
-newFastLogger typ = case typ of
+newFastLogger typ = newFastLoggerCore Nothing typ
+
+newFastLogger1 :: LogType' v -> IO (v -> IO (), IO ())
+newFastLogger1 typ = newFastLoggerCore (Just 1) typ
+
+newFastLoggerCore :: Maybe Int -> LogType' v -> IO (v -> IO (), IO ())
+newFastLoggerCore mn typ = case typ of
     LogNone                        -> return (const noOp, noOp)
     LogStdout bsize                -> newStdoutLoggerSet bsize >>= 
stdLoggerInit
     LogStderr bsize                -> newStderrLoggerSet bsize >>= 
stdLoggerInit
-    LogFileNoRotate fp bsize       -> newFileLoggerSet bsize fp >>= 
fileLoggerInit
+    LogFileNoRotate fp bsize       -> newFileLoggerSetN bsize mn fp >>= 
fileLoggerInit
     LogFile fspec bsize            -> rotateLoggerInit fspec bsize
     LogFileTimedRotate fspec bsize -> timedRotateLoggerInit fspec bsize
     LogCallback cb flush           -> return (\str -> cb str >> flush, noOp)
@@ -113,7 +120,7 @@
     stdLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     fileLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     rotateLoggerInit fspec bsize = do
-        lgrset <- newFileLoggerSet bsize $ log_file fspec
+        lgrset <- newFileLoggerSetN bsize mn $ log_file fspec
         ref <- newIORef (0 :: Int)
         mvar <- newMVar ()
         let logger str = do
@@ -124,7 +131,7 @@
     timedRotateLoggerInit fspec bsize = do
         cache <- newTimeCache $ timed_timefmt fspec
         now <- cache
-        lgrset <- newFileLoggerSet bsize $ prefixTime now $ timed_log_file 
fspec
+        lgrset <- newFileLoggerSetN bsize mn $ prefixTime now $ timed_log_file 
fspec
         ref <- newIORef now
         mvar <- newMVar lgrset
         let logger str = do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fast-logger-3.0.3/fast-logger.cabal 
new/fast-logger-3.0.5/fast-logger.cabal
--- old/fast-logger-3.0.3/fast-logger.cabal     2021-02-17 02:02:54.000000000 
+0100
+++ new/fast-logger-3.0.5/fast-logger.cabal     2021-04-30 07:48:58.000000000 
+0200
@@ -1,5 +1,5 @@
 Name:                   fast-logger
-Version:                3.0.3
+Version:                3.0.5
 Author:                 Kazu Yamamoto <k...@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <k...@iij.ad.jp>
 License:                BSD3

Reply via email to