Hello community, here is the log from the commit of package shake for openSUSE:Factory checked in at 2017-02-11 01:42:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/shake (Old) and /work/SRC/openSUSE:Factory/.shake.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shake" Changes: -------- --- /work/SRC/openSUSE:Factory/shake/shake.changes 2017-01-12 15:53:29.683340915 +0100 +++ /work/SRC/openSUSE:Factory/.shake.new/shake.changes 2017-02-11 01:42:50.886914257 +0100 @@ -1,0 +2,5 @@ +Thu Jan 26 16:20:18 UTC 2017 - [email protected] + +- Update to version 0.15.11 with cabal2obs. + +------------------------------------------------------------------- Old: ---- shake-0.15.10.tar.gz shake.cabal New: ---- shake-0.15.11.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ shake.spec ++++++ --- /var/tmp/diff_new_pack.qqtfYj/_old 2017-02-11 01:42:51.818782768 +0100 +++ /var/tmp/diff_new_pack.qqtfYj/_new 2017-02-11 01:42:51.822782204 +0100 @@ -1,7 +1,7 @@ # # spec file for package shake # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,14 +19,13 @@ %global pkg_name shake %bcond_with tests Name: %{pkg_name} -Version: 0.15.10 +Version: 0.15.11 Release: 0 Summary: Build system library, like Make, but more accurate dependencies License: BSD-3-Clause Group: Development/Languages/Other Url: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{name}-%{version}/revision/1.cabal#/%{name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-binary-devel BuildRequires: ghc-bytestring-devel @@ -90,7 +89,6 @@ %prep %setup -q -cp -p %{SOURCE1} %{name}.cabal %build %ghc_lib_build @@ -111,6 +109,7 @@ %files %defattr(-,root,root,-) %doc LICENSE +%doc CHANGES.txt README.md docs %{_bindir}/%{name} %dir %{_datadir}/%{name}-%{version} %dir %{_datadir}/%{name}-%{version}/html @@ -125,5 +124,6 @@ %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %defattr(-,root,root,-) +%doc CHANGES.txt README.md docs %changelog ++++++ shake-0.15.10.tar.gz -> shake-0.15.11.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/CHANGES.txt new/shake-0.15.11/CHANGES.txt --- old/shake-0.15.10/CHANGES.txt 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/CHANGES.txt 2017-01-18 23:12:25.000000000 +0100 @@ -1,5 +1,8 @@ Changelog for Shake +0.15.11 + #488, make sure parallel tracks dependencies + #513, permit process-1.4.3.0 and above 0.15.10 #465, fix phony names which clash with directories 0.15.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/LICENSE new/shake-0.15.11/LICENSE --- old/shake-0.15.10/LICENSE 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/LICENSE 2017-01-18 23:12:25.000000000 +0100 @@ -1,4 +1,4 @@ -Copyright Neil Mitchell 2011-2016. +Copyright Neil Mitchell 2011-2017. All rights reserved. Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/shake.cabal new/shake-0.15.11/shake.cabal --- old/shake-0.15.10/shake.cabal 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/shake.cabal 2017-01-18 23:12:25.000000000 +0100 @@ -1,13 +1,13 @@ -cabal-version: >= 1.10 +cabal-version: >= 1.18 build-type: Simple name: shake -version: 0.15.10 +version: 0.15.11 license: BSD3 license-file: LICENSE category: Development, Shake author: Neil Mitchell <[email protected]> maintainer: Neil Mitchell <[email protected]> -copyright: Neil Mitchell 2011-2016 +copyright: Neil Mitchell 2011-2017 synopsis: Build system library, like Make, but more accurate dependencies. description: Shake is a Haskell library for writing build systems - designed as a @@ -75,6 +75,7 @@ flag portable default: False + manual: True description: Obtain FileTime using portable functions library diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/src/Development/Shake/Core.hs new/shake-0.15.11/src/Development/Shake/Core.hs --- old/shake-0.15.10/src/Development/Shake/Core.hs 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/src/Development/Shake/Core.hs 2017-01-18 23:12:24.000000000 +0100 @@ -925,15 +925,20 @@ -- number of items still to complete, or Nothing for has completed (by either failure or completion) todo :: Var (Maybe Int) <- liftIO $ newVar $ Just $ length acts -- a list of refs where the results go - results :: [IORef (Maybe (Either SomeException a))] <- liftIO $ replicateM (length acts) $ newIORef Nothing + results :: [IORef (Maybe (Either SomeException (Local, a)))] <- liftIO $ replicateM (length acts) $ newIORef Nothing - captureRAW $ \continue -> do + (locals, results) <- captureRAW $ \continue -> do let resume = do res <- liftIO $ sequence . catMaybes <$> mapM readIORef results - continue res + continue $ fmap unzip res liftIO $ forM_ (zip acts results) $ \(act, result) -> do - let act2 = ifM (liftIO $ isJust <$> readVar todo) act (fail "") + let act2 = do + b <- liftIO $ isJust <$> readVar todo + when (not b) $ fail "parallel, one has already failed" + res <- act + old <- Action getRW + return (old, res) addPool globalPool $ runAction global local act2 $ \res -> do writeIORef result $ Just res modifyVar_ todo $ \v -> case v of @@ -941,6 +946,20 @@ Just i | i == 1 || isLeft res -> do resume; return Nothing Just i -> return $ Just $ i - 1 + -- don't construct with RecordWildCards so any new fields raise an error + modifyRW $ \root -> Local + -- immutable/stack that need copying + {localStack = localStack root + ,localVerbosity = localVerbosity root + ,localBlockApply = localBlockApply root + -- mutable locals that need integrating + ,localDepends = localDepends root ++ concatMap localDepends locals + ,localDiscount = localDiscount root + maximum (0:map localDiscount locals) + ,localTraces = localTraces root ++ concatMap localTraces locals + ,localTrackAllows = localTrackAllows root ++ concatMap localTrackAllows locals + ,localTrackUsed = localTrackUsed root ++ concatMap localTrackUsed locals + } + return results -- | Run an action but do not depend on anything the action uses. -- A more general version of 'orderOnly'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/src/General/Process.hs new/shake-0.15.11/src/General/Process.hs --- old/shake-0.15.10/src/General/Process.hs 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/src/General/Process.hs 2017-01-18 23:12:24.000000000 +0100 @@ -130,8 +130,9 @@ -- seems to happen with some GHC 7.2 compiled binaries with FFI etc terminateProcess pid -withCreateProcess :: CreateProcess -> ((Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> IO a) -> IO a -withCreateProcess cp act = mask $ \restore -> do +-- FIXME: There is a new withCreateProcess in process-1.4.3.0 which is probably better than ours... +withCreateProcessOld :: CreateProcess -> ((Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> IO a) -> IO a +withCreateProcessOld cp act = mask $ \restore -> do ans@(inh, outh, errh, pid) <- createProcess cp onException (restore $ act ans) $ do mapM_ (`whenJust` hClose) [inh, outh, errh] @@ -157,7 +158,7 @@ let cp = (cmdSpec poCommand){cwd = poCwd, env = poEnv, create_group = isJust poTimeout, close_fds = True ,std_in = fst $ stdIn inHandle poStdin ,std_out = stdStream outHandle poStdout poStderr, std_err = stdStream outHandle poStderr poStdout} - withCreateProcess cp $ \(inh, outh, errh, pid) -> + withCreateProcessOld cp $ \(inh, outh, errh, pid) -> withTimeout poTimeout (abort pid) $ do let streams = [(outh, stdout, poStdout) | Just outh <- [outh], CreatePipe <- [std_out cp]] ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shake-0.15.10/src/General/Timing.hs new/shake-0.15.11/src/General/Timing.hs --- old/shake-0.15.10/src/General/Timing.hs 2016-06-14 21:09:43.000000000 +0200 +++ new/shake-0.15.11/src/General/Timing.hs 2017-01-18 23:12:24.000000000 +0100 @@ -2,38 +2,41 @@ module General.Timing(resetTimings, addTiming, printTimings) where import Data.IORef -import Data.Time import System.IO.Unsafe import Numeric.Extra import System.Time.Extra +{-# NOINLINE timer #-} +timer :: IO Seconds +timer = unsafePerformIO offsetTime + {-# NOINLINE timings #-} -timings :: IORef [(UTCTime, String)] -- number of times called, newest first +timings :: IORef [(Seconds, String)] -- number of times called, newest first timings = unsafePerformIO $ newIORef [] resetTimings :: IO () resetTimings = do - now <- getCurrentTime + now <- timer writeIORef timings [(now, "Start")] -- | Print all withTiming information and clear the information. printTimings :: IO () printTimings = do - now <- getCurrentTime + now <- timer old <- atomicModifyIORef timings $ \ts -> ([(now, "Start")], ts) putStr $ unlines $ showTimings now $ reverse old addTiming :: String -> IO () addTiming msg = do - now <- getCurrentTime + now <- timer atomicModifyIORef timings $ \ts -> ((now,msg):ts, ()) -showTimings :: UTCTime -> [(UTCTime, String)] -> [String] +showTimings :: Seconds -> [(Seconds, String)] -> [String] showTimings _ [] = [] showTimings stop times = showGap $ [(a ++ " ", showDP 3 b ++ "s " ++ showPerc b ++ " " ++ progress b) | (a,b) <- xs] ++ @@ -44,7 +47,7 @@ progress x = let i = floor $ x * 25 // mx in replicate i '=' ++ replicate (25-i) ' ' mx = maximum $ map snd xs sm = sum $ map snd xs - xs = [ (name, stop `subtractTime` start) + xs = [ (name, stop - start) | ((start, name), stop) <- zip times $ map fst (drop 1 times) ++ [stop]]
