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