[DHG_packages] 01/01: ghc: Patch Cabal to provide --show-detail=direct,

Joachim Breitner nomeata at moszumanska.debian.org
Thu Nov 5 14:15:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to annotated tag ghc_v7.10.2.20151030-2
in repository DHG_packages.

commit aba09d695583867e74df9849a5c4f5a2b123aa81
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Thu Nov 5 12:38:50 2015 +0100

    ghc: Patch Cabal to provide --show-detail=direct,
    
    mostly to work around problems with `setup test` on architectures with
    insufficient threading support in GHC:
    https://github.com/haskell/cabal/issues/2398
---
 p/ghc/debian/changelog                             |  10 +-
 .../debian/patches/cabal-show-detail-direct.patch  | 103 +++++++++++++++++++++
 p/ghc/debian/patches/series                        |   1 +
 3 files changed, 113 insertions(+), 1 deletion(-)

diff --git a/p/ghc/debian/changelog b/p/ghc/debian/changelog
index 53d3eed..e222ad1 100644
--- a/p/ghc/debian/changelog
+++ b/p/ghc/debian/changelog
@@ -1,6 +1,14 @@
+ghc (7.10.2.20151030-2) experimental; urgency=medium
+
+  * Patch Cabal to provide --show-detail=direct, mostly to work around
+    problems with `setup test` on architectures with insufficient threading
+    support in GHC: https://github.com/haskell/cabal/issues/2398
+
+ -- Joachim Breitner <nomeata at debian.org>  Thu, 05 Nov 2015 12:38:32 +0100
+
 ghc (7.10.2.20151030-1) experimental; urgency=medium
 
-  * New upstream release (7.10.3-rc1) 
+  * New upstream release (7.10.3-rc1)
 
  -- Joachim Breitner <nomeata at debian.org>  Mon, 02 Nov 2015 17:44:43 +0100
 
diff --git a/p/ghc/debian/patches/cabal-show-detail-direct.patch b/p/ghc/debian/patches/cabal-show-detail-direct.patch
new file mode 100644
index 0000000..0aec818
--- /dev/null
+++ b/p/ghc/debian/patches/cabal-show-detail-direct.patch
@@ -0,0 +1,103 @@
+commit 3792d212a6f60573ef43dd72088a353725d09461
+Author: Joachim Breitner <mail at joachim-breitner.de>
+Date:   Thu Nov 5 11:31:12 2015 +0100
+
+    test: New mode --show-details=direct
+    
+    This mode implements #2911, and allows to connect the test runner
+    directly to stdout/stdin. This is more reliable in the presence of no
+    threading, i.e. a work-arond for #2398.
+    
+    I make the test suite use this, so that it passes again, despite
+    printing lots of stuff. Once #2398 is fixed properly, the test suite
+    should probably be extended to test all the various --show-details
+    modes.
+
+Index: ghc/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs
+===================================================================
+--- ghc.orig/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs	2015-11-05 12:36:38.385252394 +0100
++++ ghc/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs	2015-11-05 12:36:38.377252228 +0100
+@@ -1725,7 +1725,7 @@
+ -- * Test flags
+ -- ------------------------------------------------------------
+ 
+-data TestShowDetails = Never | Failures | Always | Streaming
++data TestShowDetails = Never | Failures | Always | Streaming | Direct
+     deriving (Eq, Ord, Enum, Bounded, Show)
+ 
+ knownTestShowDetails :: [TestShowDetails]
+@@ -1813,7 +1813,8 @@
+             ("'always': always show results of individual test cases. "
+              ++ "'never': never show results of individual test cases. "
+              ++ "'failures': show results of failing test cases. "
+-             ++ "'streaming': show results of test cases in real time.")
++             ++ "'streaming': show results of test cases in real time."
++             ++ "'direct': send results of test cases in real time; no log file.")
+             testShowDetails (\v flags -> flags { testShowDetails = v })
+             (reqArg "FILTER"
+                 (readP_to_E (\_ -> "--show-details flag expects one of "
+Index: ghc/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs
+===================================================================
+--- ghc.orig/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs	2015-11-05 12:36:38.385252394 +0100
++++ ghc/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs	2015-11-05 12:36:38.377252228 +0100
+@@ -30,7 +30,7 @@
+     , getCurrentDirectory, removeDirectoryRecursive )
+ import System.Exit ( ExitCode(..) )
+ import System.FilePath ( (</>), (<.>) )
+-import System.IO ( hGetContents, hPutStr, stdout )
++import System.IO ( hGetContents, hPutStr, stdout, stderr )
+ 
+ runTest :: PD.PackageDescription
+         -> LBI.LocalBuildInfo
+@@ -63,15 +63,20 @@
+     -- Write summary notices indicating start of test suite
+     notice verbosity $ summarizeSuiteStart $ PD.testName suite
+ 
+-    (rOut, wOut) <- createPipe
++    (wOut, wErr, logText) <- case details of
++        Direct -> return (stdout, stderr, "")
++        _ -> do
++            (rOut, wOut) <- createPipe
++
++            -- Read test executable's output lazily (returns immediately)
++            logText <- hGetContents rOut
++            -- Force the IO manager to drain the test output pipe
++            void $ forkIO $ length logText `seq` return ()
+ 
+-    -- Read test executable's output lazily (returns immediately)
+-    logText <- hGetContents rOut
+-    -- Force the IO manager to drain the test output pipe
+-    void $ forkIO $ length logText `seq` return ()
++            -- '--show-details=streaming': print the log output in another thread
++            when (details == Streaming) $ void $ forkIO $ hPutStr stdout logText
+ 
+-    -- '--show-details=streaming': print the log output in another thread
+-    when (details == Streaming) $ void $ forkIO $ hPutStr stdout logText
++            return (wOut, wOut, logText)
+ 
+     -- Run the test executable
+     let opts = map (testOption pkg_descr lbi suite)
+@@ -93,7 +98,7 @@
+ 
+     exit <- rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv')
+                                -- these handles are automatically closed
+-                               Nothing (Just wOut) (Just wOut)
++                               Nothing (Just wOut) (Just wErr)
+ 
+     -- Generate TestSuiteLog from executable exit code and a machine-
+     -- readable test log.
+@@ -112,12 +117,10 @@
+     -- Show the contents of the human-readable log file on the terminal
+     -- if there is a failure and/or detailed output is requested
+     let whenPrinting = when $
+-            (details > Never)
+-            && (not (suitePassed $ testLogs suiteLog) || details == Always)
++            ( details == Always ||
++              details == Failures && not (suitePassed $ testLogs suiteLog))
+             -- verbosity overrides show-details
+             && verbosity >= normal
+-            -- if streaming, we already printed the log
+-            && details /= Streaming
+     whenPrinting $ putStr $ unlines $ lines logText
+ 
+     -- Write summary notice to terminal indicating end of test suite
diff --git a/p/ghc/debian/patches/series b/p/ghc/debian/patches/series
index 6dad111..109dc4a 100644
--- a/p/ghc/debian/patches/series
+++ b/p/ghc/debian/patches/series
@@ -4,3 +4,4 @@ no-missing-haddock-file-warning
 hurd.diff
 buildpath-abi-stability.patch
 reproducible-tmp-names
+cabal-show-detail-direct.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/DHG_packages.git



More information about the Pkg-haskell-commits mailing list