From 0c80ffd3caee224555f8b394b6b2c05b2752f440 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 15 Sep 2022 17:13:11 +0100 Subject: gentoo auto-resync : 15:09:2022 - 17:13:11 --- eclass/Manifest.gz | Bin 37144 -> 37139 bytes eclass/haskell-cabal.eclass | 51 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) (limited to 'eclass') diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz index ce8e5a1d6f98..7a8302689a45 100644 Binary files a/eclass/Manifest.gz and b/eclass/Manifest.gz differ diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass index 0f7f67a244d7..5c0fcba0ebe1 100644 --- a/eclass/haskell-cabal.eclass +++ b/eclass/haskell-cabal.eclass @@ -180,7 +180,6 @@ fi # ) : ${CABAL_CHDEPS:=} - # @ECLASS_VARIABLE: CABAL_LIVE_VERSION # @PRE_INHERIT # @DEFAULT_UNSET @@ -188,6 +187,16 @@ fi # Set this to any value to prevent SRC_URI from being set automatically. : ${CABAL_LIVE_VERSION:=} +# @ECLASS_VARIABLE: GHC_BOOTSTRAP_PACKAGES +# @DEFAULT_UNSET +# @DESCRIPTION: +# Extra packages that need to be exposed when compiling Setup.hs +# @EXAMPLE: +# GHC_BOOTSTRAP_PACKAGES=( +# cabal-doctest +# ) +: ${GHC_BOOTSTRAP_PACKAGES:=} + # 'dev-haskell/cabal' passes those options with ./configure-based # configuration, but most packages don't need/don't accept it: # #515362, #515362 @@ -269,6 +278,10 @@ cabal-version() { # We ask portage, not ghc, so that we only pick up # portage-installed cabal versions. _CABAL_VERSION_CACHE="$(ghc-extract-pm-version dev-haskell/cabal)" + # exception for live (9999) version + if [[ "${_CABAL_VERSION_CACHE}" == 9999 ]]; then + _CABAL_VERSION_CACHE="$(ghc-cabal-version)" + fi fi fi echo "${_CABAL_VERSION_CACHE}" @@ -301,8 +314,42 @@ cabal-bootstrap() { setup_bootstrap_args+=(-threaded) fi + # The packages available when compiling Setup.hs need to be controlled, + # otherwise module name collisions are possible. + local -a bootstrap_pkg_args=(-hide-all-packages) + + # Expose common packages bundled with GHC + # See: + local default_exposed_pkgs=" + Cabal + base + binary + bytestring + containers + deepseq + directory + exceptions + filepath + haskeline + mtl + parsec + pretty + process + stm + template-haskell + terminfo + text + transformers + unix + xhtml + " + + for pkg in $default_exposed_pkgs ${GHC_BOOTSTRAP_PACKAGES[*]}; do + bootstrap_pkg_args+=(-package "$pkg") + done + make_setup() { - set -- -package "${cabalpackage}" --make "${setupmodule}" \ + set -- "${bootstrap_pkg_args[@]}" --make "${setupmodule}" \ $(ghc-make-args) \ "${setup_bootstrap_args[@]}" \ ${HCFLAGS} \ -- cgit v1.2.3