Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Tue, 31 May 2016 21:37:29
Message-Id: 1464730636.2db4176c329e5e99e68f47dcb058c55d434bb64e.slyfox@gentoo
1 commit: 2db4176c329e5e99e68f47dcb058c55d434bb64e
2 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 31 21:35:32 2016 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Tue May 31 21:37:16 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2db4176c
7
8 haskell-cabal.eclass: add basic support for ROOT!=/, bug #534194
9
10 Reported-by: Dennis Schridde
11 Bug: https://bugs.gentoo.org/534194
12 Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
13
14 eclass/ghc-package.eclass | 12 +++++++++++-
15 eclass/haskell-cabal.eclass | 26 ++++++++++++++++++++++----
16 2 files changed, 33 insertions(+), 5 deletions(-)
17
18 diff --git a/eclass/ghc-package.eclass b/eclass/ghc-package.eclass
19 index 5466c0b..ccc6d6f 100644
20 --- a/eclass/ghc-package.eclass
21 +++ b/eclass/ghc-package.eclass
22 @@ -62,6 +62,16 @@ ghc-getghcpkgbin() {
23 fi
24 }
25
26 +# @FUNCTION: ghc-host-prefix
27 +# @DESCRIPTION:
28 +# Returns root of installed ghc.
29 +# Some helpers (like best_version) require reference
30 +# host system as they are tied to compiler bing executed.
31 +ghc-host-root() {
32 + has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
33 + echo "${EPREFIX}/"
34 +}
35 +
36 # @FUNCTION: ghc-version
37 # @DESCRIPTION:
38 # returns upstream version of ghc
39 @@ -85,7 +95,7 @@ ghc-pm-version() {
40 local pm_ghc_p
41
42 if [[ -z "${_GHC_PM_VERSION_CACHE}" ]]; then
43 - pm_ghc_p=$(best_version dev-lang/ghc)
44 + pm_ghc_p=$(ROOT=$(ghc-host-root) best_version dev-lang/ghc)
45 _GHC_PM_VERSION_CACHE="PM:${pm_ghc_p#dev-lang/ghc-}"
46 fi
47 echo "${_GHC_PM_VERSION_CACHE}"
48
49 diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass
50 index 3735079..a568bf4 100644
51 --- a/eclass/haskell-cabal.eclass
52 +++ b/eclass/haskell-cabal.eclass
53 @@ -59,6 +59,13 @@ inherit eutils ghc-package multilib multiprocessing
54 # linking 'setup' faster.
55 : ${GHC_BOOTSTRAP_FLAGS:=}
56
57 +# @ECLASS-VARIABLE: CABAL_EXTRA_TEST_FLAGS
58 +# @DESCRIPTION:
59 +# User-specified additional parameters passed to 'setup test'.
60 +# example: /etc/portage/make.conf:
61 +# CABAL_EXTRA_TEST_FLAGS="-v3 --show-details=streaming"
62 +: ${CABAL_EXTRA_TEST_FLAGS:=}
63 +
64 # @ECLASS-VARIABLE: CABAL_DEBUG_LOOSENING
65 # @DESCRIPTION:
66 # Show debug output for 'cabal_chdeps' function if set.
67 @@ -118,8 +125,7 @@ if [[ -n "${CABAL_USE_HSCOLOUR}" ]]; then
68 fi
69
70 if [[ -n "${CABAL_USE_HOOGLE}" ]]; then
71 - # enabled only in ::haskell
72 - CABAL_USE_HOOGLE=
73 + IUSE="${IUSE} hoogle"
74 fi
75
76 if [[ -n "${CABAL_USE_ALEX}" ]]; then
77 @@ -169,7 +175,7 @@ cabal-version() {
78 else
79 # We ask portage, not ghc, so that we only pick up
80 # portage-installed cabal versions.
81 - _CABAL_VERSION_CACHE="$(ghc-extractportageversion dev-haskell/cabal)"
82 + _CABAL_VERSION_CACHE="$(ROOT=$(ghc-host-root) ghc-extractportageversion dev-haskell/cabal)"
83 fi
84 fi
85 echo "${_CABAL_VERSION_CACHE}"
86 @@ -602,13 +608,25 @@ haskell-cabal_src_compile() {
87 }
88
89 haskell-cabal_src_test() {
90 + local cabaltest=()
91 +
92 pushd "${S}" > /dev/null || die
93
94 if cabal-is-dummy-lib; then
95 einfo ">>> No tests for dummy library: ${CATEGORY}/${PF}"
96 else
97 einfo ">>> Test phase [cabal test]: ${CATEGORY}/${PF}"
98 - set -- test "$@"
99 +
100 + # '--show-details=streaming' appeared in Cabal-1.20
101 + if ./setup test --help | grep -q -- "'streaming'"; then
102 + cabaltest+=(--show-details=streaming)
103 + fi
104 +
105 + set -- test \
106 + "${cabaltest[@]}" \
107 + ${CABAL_TEST_FLAGS} \
108 + ${CABAL_EXTRA_TEST_FLAGS} \
109 + "$@"
110 echo ./setup "$@"
111 ./setup "$@" || die "cabal test failed"
112 fi