diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2016-05-31 22:35:32 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2016-05-31 22:37:16 +0100 |
commit | 2db4176c329e5e99e68f47dcb058c55d434bb64e (patch) | |
tree | 8a268a63179d05ab2d6dece7fc640483aecee27f | |
parent | dev-python/pyudev: Version bump to 0.20.0 (diff) | |
download | gentoo-2db4176c329e5e99e68f47dcb058c55d434bb64e.tar.gz gentoo-2db4176c329e5e99e68f47dcb058c55d434bb64e.tar.bz2 gentoo-2db4176c329e5e99e68f47dcb058c55d434bb64e.zip |
haskell-cabal.eclass: add basic support for ROOT!=/, bug #534194
Reported-by: Dennis Schridde
Bug: https://bugs.gentoo.org/534194
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r-- | eclass/ghc-package.eclass | 12 | ||||
-rw-r--r-- | eclass/haskell-cabal.eclass | 26 |
2 files changed, 33 insertions, 5 deletions
diff --git a/eclass/ghc-package.eclass b/eclass/ghc-package.eclass index 5466c0b5b20d..ccc6d6ffd84b 100644 --- a/eclass/ghc-package.eclass +++ b/eclass/ghc-package.eclass @@ -62,6 +62,16 @@ ghc-getghcpkgbin() { fi } +# @FUNCTION: ghc-host-prefix +# @DESCRIPTION: +# Returns root of installed ghc. +# Some helpers (like best_version) require reference +# host system as they are tied to compiler bing executed. +ghc-host-root() { + has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= + echo "${EPREFIX}/" +} + # @FUNCTION: ghc-version # @DESCRIPTION: # returns upstream version of ghc @@ -85,7 +95,7 @@ ghc-pm-version() { local pm_ghc_p if [[ -z "${_GHC_PM_VERSION_CACHE}" ]]; then - pm_ghc_p=$(best_version dev-lang/ghc) + pm_ghc_p=$(ROOT=$(ghc-host-root) best_version dev-lang/ghc) _GHC_PM_VERSION_CACHE="PM:${pm_ghc_p#dev-lang/ghc-}" fi echo "${_GHC_PM_VERSION_CACHE}" diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass index 373507995f36..a568bf4337b1 100644 --- a/eclass/haskell-cabal.eclass +++ b/eclass/haskell-cabal.eclass @@ -59,6 +59,13 @@ inherit eutils ghc-package multilib multiprocessing # linking 'setup' faster. : ${GHC_BOOTSTRAP_FLAGS:=} +# @ECLASS-VARIABLE: CABAL_EXTRA_TEST_FLAGS +# @DESCRIPTION: +# User-specified additional parameters passed to 'setup test'. +# example: /etc/portage/make.conf: +# CABAL_EXTRA_TEST_FLAGS="-v3 --show-details=streaming" +: ${CABAL_EXTRA_TEST_FLAGS:=} + # @ECLASS-VARIABLE: CABAL_DEBUG_LOOSENING # @DESCRIPTION: # Show debug output for 'cabal_chdeps' function if set. @@ -118,8 +125,7 @@ if [[ -n "${CABAL_USE_HSCOLOUR}" ]]; then fi if [[ -n "${CABAL_USE_HOOGLE}" ]]; then - # enabled only in ::haskell - CABAL_USE_HOOGLE= + IUSE="${IUSE} hoogle" fi if [[ -n "${CABAL_USE_ALEX}" ]]; then @@ -169,7 +175,7 @@ cabal-version() { else # We ask portage, not ghc, so that we only pick up # portage-installed cabal versions. - _CABAL_VERSION_CACHE="$(ghc-extractportageversion dev-haskell/cabal)" + _CABAL_VERSION_CACHE="$(ROOT=$(ghc-host-root) ghc-extractportageversion dev-haskell/cabal)" fi fi echo "${_CABAL_VERSION_CACHE}" @@ -602,13 +608,25 @@ haskell-cabal_src_compile() { } haskell-cabal_src_test() { + local cabaltest=() + pushd "${S}" > /dev/null || die if cabal-is-dummy-lib; then einfo ">>> No tests for dummy library: ${CATEGORY}/${PF}" else einfo ">>> Test phase [cabal test]: ${CATEGORY}/${PF}" - set -- test "$@" + + # '--show-details=streaming' appeared in Cabal-1.20 + if ./setup test --help | grep -q -- "'streaming'"; then + cabaltest+=(--show-details=streaming) + fi + + set -- test \ + "${cabaltest[@]}" \ + ${CABAL_TEST_FLAGS} \ + ${CABAL_EXTRA_TEST_FLAGS} \ + "$@" echo ./setup "$@" ./setup "$@" || die "cabal test failed" fi |