/[gentoo-x86]/eclass/ghc-package.eclass
Gentoo

Diff of /eclass/ghc-package.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.16 Revision 1.22
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/ghc-package.eclass,v 1.16 2006/03/01 12:58:01 dcoutts Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/ghc-package.eclass,v 1.22 2007/03/13 12:02:04 kosmikus Exp $
4# 4#
5# Author: Andres Loeh <kosmikus@gentoo.org> 5# Author: Andres Loeh <kosmikus@gentoo.org>
6# Maintained by: Haskell herd <haskell@gentoo.org>
6# 7#
7# This eclass helps with the Glasgow Haskell Compiler's package 8# This eclass helps with the Glasgow Haskell Compiler's package
8# configuration utility. 9# configuration utility.
9 10
10inherit versionator 11inherit versionator
13PATH="/usr/bin:/opt/ghc/bin:${PATH}" 14PATH="/usr/bin:/opt/ghc/bin:${PATH}"
14 15
15# for later configuration using environment variables/ 16# for later configuration using environment variables/
16# returns the name of the ghc executable 17# returns the name of the ghc executable
17ghc-getghc() { 18ghc-getghc() {
18 echo "ghc" 19 type -P ghc
19} 20}
20 21
21# returns the name of the ghc-pkg executable 22# returns the name of the ghc-pkg executable
22ghc-getghcpkg() { 23ghc-getghcpkg() {
23 echo "ghc-pkg" 24 type -P ghc-pkg
24} 25}
25 26
26# returns the name of the ghc-pkg binary (ghc-pkg 27# returns the name of the ghc-pkg binary (ghc-pkg
27# itself usually is a shell script, and we have to 28# itself usually is a shell script, and we have to
28# bypass the script under certain circumstances); 29# bypass the script under certain circumstances);
58# return the best version of the Cabal library that is available 59# return the best version of the Cabal library that is available
59ghc-bestcabalversion() { 60ghc-bestcabalversion() {
60 local cabalpackage 61 local cabalpackage
61 local cabalversion 62 local cabalversion
62 if ghc-cabal; then 63 if ghc-cabal; then
63 # Try if ghc-pkg can determine the latest version. 64 # We ask portage, not ghc, so that we only pick up
64 # If not, use portage. 65 # portage-installed cabal versions.
65 cabalpackage="$($(ghc-getghcpkg) latest Cabal 2> /dev/null)"
66 if [[ $? -eq 0 ]]; then
67 cabalversion="${cabalpackage#Cabal-}"
68 else
69 cabalpackage="$(best_version cabal)" 66 cabalpackage="$(best_version dev-haskell/cabal)"
70 cabalversion="${cabalpackage#dev-haskell/cabal-}" 67 cabalversion="${cabalpackage#dev-haskell/cabal-}"
71 cabalversion="${cabalversion%-r*}" 68 cabalversion="${cabalversion%-r*}"
72 cabalversion="${cabalversion%_pre*}" 69 cabalversion="${cabalversion%_pre*}"
73 fi
74 echo "Cabal-${cabalversion}" 70 echo "Cabal-${cabalversion}"
75 else 71 else
76 # older ghc's don't support package versioning 72 # older ghc's don't support package versioning
77 echo Cabal 73 echo Cabal
78 fi 74 fi
252 | sed 's:,: :g' 248 | sed 's:,: :g'
253 fi 249 fi
254 done 250 done
255} 251}
256 252
253# exported function: check if we have a consistent ghc installation
254ghc-package_pkg_setup() {
255 #place holder for sanity check of ghc vs ghc-bin version issues
256 return
257}
258
257# exported function: registers the package-specific package 259# exported function: registers the package-specific package
258# configuration file 260# configuration file
259ghc-package_pkg_postinst() { 261ghc-package_pkg_postinst() {
260 ghc-register-pkg "$(ghc-localpkgconf)" 262 ghc-register-pkg "$(ghc-localpkgconf)"
261} 263}
266# package configuration file ... 268# package configuration file ...
267ghc-package_pkg_prerm() { 269ghc-package_pkg_prerm() {
268 ghc-unregister-pkg "$(ghc-localpkgconf)" 270 ghc-unregister-pkg "$(ghc-localpkgconf)"
269} 271}
270 272
271EXPORT_FUNCTIONS pkg_postinst pkg_prerm 273EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_prerm

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.22

  ViewVC Help
Powered by ViewVC 1.1.20