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 |