[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