
Please start with the hs-plugins repo on code.haskell.org, since it's already updated for ghc 6.8, http://code.haskell.org/~dons/code/hs-plugins/ valery.vv:
Hi,
(The message below contains bunch of "preformatted" sections. I hope it's still readable, otherwise, please, let me know.)
My quest is to install lambdabot (for the sake of offline `@hoogle' and `@pl' commands), and the one depends on `plugins'.
1) plugins.cabal should be updated ----------------------------------
A patch to .cabal file[1] is needed to get rid of config-time warning[2] and resolve build-time errors[3].
[1] vvv:~/src/plugins-1.0$ diff -u plugins.cabal{.orig,} --- plugins.cabal.orig 2008-01-06 22:23:44.657177486 +0200 +++ plugins.cabal 2008-01-06 22:25:45.160728537 +0200 @@ -33,6 +33,6 @@ src/Language/Hi/hschooks.c includes: Linker.h extensions: CPP, ForeignFunctionInterface -Build-Depends: base, Cabal, haskell-src +Build-Depends: base, Cabal, haskell-src, array, containers, directory, random, process ghc-options: -Wall -O -fasm -funbox-strict-fields -fno-warn-missing-signatures -hs-source-dir: src +hs-source-dirs: src
[2] vvv:~/src/plugins-1.0$ runhaskell Setup configure --prefix=$HOME --user Warning: The field "hs-source-dir" is deprecated, please use "hs-source-dirs" Configuring plugins-1.0... [...]
[3] vvv:~/src/plugins-1.0$ runhaskell Setup build Preprocessing library plugins-1.0... Building plugins-1.0...
src/Language/Hi/Binary.hs:90:7: Could not find module `Data.Array.Base': it is a member of package array-0.1, which is hidden
2) it doesn't build with Cabal-1.3.2 ------------------------------------
`InstalledPackageInfo' is a type alias in GHC's Cabal[4], not a data constructor; `plugins' library[5] gets confused[6].
[4] vvv:~/src$ diff -u cabal-1.2.2.0/Distribution/InstalledPackageInfo.hs ghc/libraries/Cabal/Distribution/InstalledPackageInfo.hs --- cabal-1.2.2.0/Distribution/InstalledPackageInfo.hs 2007-11-01 17:02:35.000000000 +0200 +++ ghc/libraries/Cabal/Distribution/InstalledPackageInfo.hs 2007-12-17 17:53:21.691532864 +0200 @@ -46,7 +46,7 @@ -- This module is meant to be local-only to Distribution...
module Distribution.InstalledPackageInfo ( - InstalledPackageInfo(..), + InstalledPackageInfo_(..), InstalledPackageInfo, ParseResult(..), PError(..), PWarning, emptyInstalledPackageInfo, parseInstalledPackageInfo, @@ -72,8 +72,8 @@ -- ----------------------------------------------------------------------------- -- The InstalledPackageInfo type
-data InstalledPackageInfo - = InstalledPackageInfo { +data InstalledPackageInfo_ m + = InstalledPackageInfo_ { -- these parts are exactly the same as PackageDescription package :: PackageIdentifier, license :: License, @@ -87,8 +87,8 @@ category :: String, -- these parts are required by an installed package only: exposed :: Bool, - exposedModules :: [String], - hiddenModules :: [String], + exposedModules :: [m], + hiddenModules :: [m], importDirs :: [FilePath], -- contain sources in case of Hugs libraryDirs :: [FilePath], hsLibraries :: [String], @@ -107,9 +107,11 @@ } deriving (Read, Show)
-emptyInstalledPackageInfo :: InstalledPackageInfo +type InstalledPackageInfo = InstalledPackageInfo_ String + +emptyInstalledPackageInfo :: InstalledPackageInfo_ m emptyInstalledPackageInfo - = InstalledPackageInfo { + = InstalledPackageInfo_ { package = PackageIdentifier "" noVersion, license = AllRightsReserved, copyright = "",
[5] vvv:~/src/plugins-1.0$ sed -n 64,66p src/System/Plugins/PackageAPI.hs updImportDirs f pk@(InstalledPackageInfo { importDirs = idirs }) = pk { importDirs = f idirs } updLibraryDirs f pk@(InstalledPackageInfo { libraryDirs = ldirs }) =
[6] vvv:~/src/plugins-1.0$ runhaskell Setup build Preprocessing library plugins-1.0... Building plugins-1.0... [ 1 of 24] Compiling System.Plugins.Process ( src/System/Plugins/Process.hs, dist/build/System/Plugins/Process.o ) [ 2 of 24] Compiling System.Plugins.Parser ( src/System/Plugins/Parser.hs, dist/build/System/Plugins/Parser.o ) [ 3 of 24] Compiling System.Plugins.ParsePkgConfCabal ( src/System/Plugins/ParsePkgConfCabal.hs, dist/build/System/Plugins/ParsePkgConfCabal.o ) [ 4 of 24] Compiling System.Plugins.PackageAPI ( src/System/Plugins/PackageAPI.hs, dist/build/System/Plugins/PackageAPI.o )
src/System/Plugins/PackageAPI.hs:64:20: Not in scope: data constructor `InstalledPackageInfo'
src/System/Plugins/PackageAPI.hs:66:21: Not in scope: data constructor `InstalledPackageInfo'
I would like to hear your suggestions.
Should I try harder[7] installing Cabal-1.2.2.0? Or is this a bug of GHC's Cabal? In this case I've just reported it. :)
[7] vvv:~/src/cabal-1.2.2.0$ runhaskell Setup configure --prefix=$HOME --user Configuring Cabal-1.2.2.0... Setup: At least the following dependencies are missing: base <3, filepath -any vvv:~/src/cabal-1.2.2.0$ runhaskell Setup configure --prefix=$HOME --user -f small_base Configuring Cabal-1.2.2.0... Setup: At least the following dependencies are missing: base >=3, pretty -any, directory -any, old-time -any, process -any, containers -any, filepath -any vvv:~/src/cabal-1.2.2.0$ ghc-pkg list /home/vvv/lib/ghc-6.9.20080104/package.conf: Cabal-1.3.2, array-0.1, base-3.0, bytestring-0.9, containers-0.1, directory-1.0, filepath-1.1, (ghc-6.9.20080104), haskell98-1.0.1, hpc-0.5, old-locale-1.0, old-time-1.0, packedstring-0.1, pretty-1.0, process-1.0, random-1.0, readline-1.0.1, rts-1.0, template-haskell-2.2, unix-2.2 /home/vvv/.ghc/i386-linux-6.9.20080104/package.conf: X11-1.4.1, binary-0.4.1, haskell-src-1.0.1.1, mtl-1.1.0.0, network-2.1.0.0, parsec-2.1.0.0, xmonad-0.5, xmonad-contrib-0.5
Thanks a lot.
Happy hacking!
-- vvv _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries