commit:     54b6ddafe4a7bde88628d7aa0105f1b5254da969
Author:     Jack Todaro <jackmtodaro <AT> gmail <DOT> com>
AuthorDate: Sat Nov 10 05:56:53 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Nov 11 11:33:26 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54b6ddaf

eclass: update ghc-package.eclass for EAPI 7, sync with ::haskell

Signed-off-by: Jack Todaro <jackmtodaro <AT> gmail.com>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 eclass/ghc-package.eclass | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/eclass/ghc-package.eclass b/eclass/ghc-package.eclass
index bd08b01d04c..27fafff5a21 100644
--- a/eclass/ghc-package.eclass
+++ b/eclass/ghc-package.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: ghc-package.eclass
@@ -10,7 +10,13 @@
 # @DESCRIPTION:
 # Helper eclass to handle ghc installation/upgrade/deinstallation process.
 
-inherit multiprocessing versionator
+inherit multiprocessing
+
+# Maintain version-testing compatibility with ebuilds not using EAPI 7.
+case "${EAPI:-0}" in
+       4|5|6) inherit eapi7-ver ;;
+       *) ;;
+esac
 
 # @FUNCTION: ghc-getghc
 # @DESCRIPTION:
@@ -35,7 +41,7 @@ ghc-getghcpkg() {
 # because for some reason the global package file
 # must be specified
 ghc-getghcpkgbin() {
-       if version_is_at_least "7.9.20141222" "$(ghc-version)"; then
+       if ver_test "$(ghc-version)" -ge "7.9.20141222"; then
                # ghc-7.10 stopped supporting single-file database
                local empty_db="${T}/empty.conf.d" 
ghc_pkg="$(ghc-libdir)/bin/ghc-pkg"
                if [[ ! -d ${empty_db} ]]; then
@@ -43,7 +49,7 @@ ghc-getghcpkgbin() {
                fi
                echo "$(ghc-libdir)/bin/ghc-pkg" 
"--global-package-db=${empty_db}"
 
-       elif version_is_at_least "7.7.20121101" "$(ghc-version)"; then
+       elif ver_test "$(ghc-version)" -ge "7.7.20121101"; then
                # the ghc-pkg executable changed name in ghc 6.10, as it no 
longer needs
                # the wrapper script with the static flags
                # was moved to bin/ subtree by:
@@ -51,7 +57,7 @@ ghc-getghcpkgbin() {
                echo '[]' > "${T}/empty.conf"
                echo "$(ghc-libdir)/bin/ghc-pkg" 
"--global-package-db=${T}/empty.conf"
 
-       elif version_is_at_least "7.5.20120516" "$(ghc-version)"; then
+       elif ver_test "$(ghc-version)" -ge "7.5.20120516"; then
                echo '[]' > "${T}/empty.conf"
                echo "$(ghc-libdir)/ghc-pkg" 
"--global-package-db=${T}/empty.conf"
 
@@ -94,7 +100,7 @@ ghc-pm-version() {
 # @DESCRIPTION:
 # return version of the Cabal library bundled with ghc
 ghc-cabal-version() {
-       if version_is_at_least "7.9.20141222" "$(ghc-version)"; then
+       if ver_test "$(ghc-version)" -ge "7.9.20141222"; then
                # outputs in format: 'version: 1.18.1.5'
                set -- `$(ghc-getghcpkg) 
--package-db=$(ghc-libdir)/package.conf.d.initial field Cabal version`
                echo "$2"
@@ -256,13 +262,14 @@ check-for-collisions() {
 # moves the local (package-specific) package configuration
 # file to its final destination
 ghc-install-pkg() {
-       local pkg_config_file=$1
        local localpkgconf="${T}/$(ghc-localpkgconfd)"
        local pkg_path pkg pkg_db="${D}/$(ghc-package-db)" 
hint_db="${D}/$(ghc-confdir)"
 
        $(ghc-getghcpkgbin) init "${localpkgconf}" || die "Failed to initialize 
empty local db"
-       $(ghc-getghcpkgbin) -f "${localpkgconf}" update - --force \
-               < "${pkg_config_file}" || die "failed to register ${pkg}"
+       for pkg_config_file in "$@"; do
+               $(ghc-getghcpkgbin) -f "${localpkgconf}" update - --force \
+                               < "${pkg_config_file}" || die "failed to 
register ${pkg}"
+       done
 
        check-for-collisions "${localpkgconf}"
 
@@ -273,8 +280,11 @@ ghc-install-pkg() {
        done
 
        mkdir -p "${hint_db}" || die
-       cp "${pkg_config_file}" "${hint_db}/${PF}.conf" || die
-       chmod 0644 "${hint_db}/${PF}.conf" || die
+       for pkg_config_file in "$@"; do
+               local pkg_name="gentoo-${CATEGORY}-${PF}-"$(basename 
"${pkg_config_file}")
+               cp "${pkg_config_file}" "${hint_db}/${pkg_name}" || die
+               chmod 0644 "${hint_db}/${pkg_name}" || die
+       done
 }
 
 # @FUNCTION: ghc-recache-db

Reply via email to