JPMoresmau / BuildWrapper

Utility to manage haskell projects for an IDE
Other
36 stars 12 forks source link

buildwrapper-0.5.2 failed during the building phase #4

Open bytesource opened 12 years ago

bytesource commented 12 years ago

On trying to install buildwrapper for use with EclipseFP, the build fails with the following output and error message:


$ cabal install buildwrapper
Resolving dependencies...
Warning: buildwrapper.cabal: Ignoring unknown section type: test-suite
Configuring buildwrapper-0.5.2...
Preprocessing library buildwrapper-0.5.2...
Preprocessing executables for buildwrapper-0.5.2...
Building buildwrapper-0.5.2...
[1 of 7] Compiling Language.Haskell.BuildWrapper.Packages ( src/Language/Haskell/BuildWrapper/Packages.hs, dist/build/Language/Haskell/BuildWrapper/Packages.o )
[2 of 7] Compiling Language.Haskell.BuildWrapper.Base ( src/Language/Haskell/BuildWrapper/Base.hs, dist/build/Language/Haskell/BuildWrapper/Base.o )
[3 of 7] Compiling Language.Haskell.BuildWrapper.Cabal ( src/Language/Haskell/BuildWrapper/Cabal.hs, dist/build/Language/Haskell/BuildWrapper/Cabal.o )
[4 of 7] Compiling Language.Haskell.BuildWrapper.GHCStorage ( src/Language/Haskell/BuildWrapper/GHCStorage.hs, dist/build/Language/Haskell/BuildWrapper/GHCStorage.o )
[5 of 7] Compiling Language.Haskell.BuildWrapper.GHC ( src/Language/Haskell/BuildWrapper/GHC.hs, dist/build/Language/Haskell/BuildWrapper/GHC.o )

src/Language/Haskell/BuildWrapper/GHC.hs:50:1:
    Warning: The import of `Control.Monad.IO.Class' is redundant
               except perhaps to import instances from `Control.Monad.IO.Class'
             To import instances alone, use: import Control.Monad.IO.Class()
[6 of 7] Compiling Language.Haskell.BuildWrapper.Src ( src/Language/Haskell/BuildWrapper/Src.hs, dist/build/Language/Haskell/BuildWrapper/Src.o )
[7 of 7] Compiling Language.Haskell.BuildWrapper.API ( src/Language/Haskell/BuildWrapper/API.hs, dist/build/Language/Haskell/BuildWrapper/API.o )
Registering buildwrapper-0.5.2...
<command line>: cannot satisfy -package-id buildwrapper-0.5.2
    (use -v for more information)
cabal: Error: some packages failed to install:
buildwrapper-0.5.2 failed during the building phase. The exception was:
ExitFailure 1

I am using Kubuntu 11.10, Cabal version 0.82 and GHC version 7.0.3.

When opening a Haskell file in Eclipse with EclipseFP installed, right now I don't get any syntax highlighting, the outline is empty and running the program does not produce any output. As I suspect this is due to buildwrapper not being installed yet, I would be glad if you could help me find the error.

Stefan

JPMoresmau commented 12 years ago

There's something really fishy, try to install buildwrapper manually in verbose mode (-v). Because it says it's building the library and registering ok, and then when building the executable it says it doesn't find the library it just registered... Otherwise you're right, without BuildWrapper EclipseFP doesn't give you much...

bytesource commented 12 years ago

Apparently the output from using cabal in verbose mode was too large, as I got the following error after pasting it here:

414 Request-URI Too Large

As there is also no way to attach a file, I'll send you the output by mail in a minute.

Stefan

JPMoresmau commented 12 years ago

Everything looks ok: Registering buildwrapper-0.5.2...
/usr/bin/ghc-pkg update - --package-conf=dist/package.conf.inplace ... Building
executable buildwrapper.....-package-conf
dist/package.conf.inplace

So Cabal registers the library in the local package db, and reuses it to build the executable, but then fails... Is the library properly installed in your normal package db (ghc-pkg list and check that buildwrapper-0.5.2 is listed)

Otherwise I have no idea, maybe it's a cabal issue. Check the file mentioned (dist/package.conf.inplace): does it mention buildwrapper-0.5.2 inside? (the file is text). Sometimes on unixes issues are due to permissions being incorrect on some files/folders...

bytesource commented 12 years ago

After running cabal, buildwrapper is located on the following path:

~/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2.tar.gz

But buildwrapper does not appear in ~/.cabal/lib/.

Sorry, I have no idea where I can find package.conf.inplace. Do you know where this file is located?

JPMoresmau commented 12 years ago

Mmhh yeah, when you install directly it just creates a temporary folder (see inside your log: Extracting /home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2.tar.gz to /tmp/buildwrapper-0.5.212583) So maybe you can try to take the tar.gz, extract it in a folder, and run cabal install inside that folder. There will be a dist folder created that will contain all the generated files, including package.conf.inplace.

bytesource commented 12 years ago

Mmhh yeah, when you install directly it just creates a temporary folder (see inside your log: Extracting >/home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2.tar.gz to /tmp/buildwrapper->0.5.212583) So maybe you can try to take the tar.gz, extract it in a folder, and run cabal install inside that folder. There will be a >dist folder created that will contain all the generated files, including package.conf.inplace.

This is the content of package.conf.inplace:

[InstalledPackageInfo {installedPackageId = InstalledPackageId "buildwrapper-0.5.2-42e83351e31b2810deecbf86bbd1b9ab", sourcePackageId = PackageIdentifier {pkgName = PackageName "buildwrapper", pkgVersion = Version {versionBranch = [0,5,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "JP Moresmau <jpmoresmau@gmail.com>", author = "JP Moresmau <jpmoresmau@gmail.com>, based on the work of Thomas Schilling and others", stability = "beta", homepage = "https://github.com/JPMoresmau/BuildWrapper", pkgUrl = "", description = "Buildwrapper is an alternative to scion.\nIt provides services to configure, build and give information on source files to help IDEs manage Haskell projects.\nYou can use buildwrapper to build project and retrieve errors, get outline for each module source, get the type of something inside a source file, get lexer tokens, etc.\nBuildwrapper is used in the EclipseFP project (Eclipse plugins for Haskell development)", category = "Development", exposed = True, exposedModules = ["Language.Haskell.BuildWrapper.API","Language.Haskell.BuildWrapper.Base","Language.Haskell.BuildWrapper.Cabal","Language.Haskell.BuildWrapper.GHC"], hiddenModules = ["Language.Haskell.BuildWrapper.GHCStorage","Language.Haskell.BuildWrapper.Packages","Language.Haskell.BuildWrapper.Src"], importDirs = ["/home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2/dist/build"], libraryDirs = ["/home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2/dist/build"], hsLibraries = ["HSbuildwrapper-0.5.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "Cabal-1.10.1.0-e951c182da4a22a7b82c0f2e4be13b7b",InstalledPackageId "aeson-0.6.0.2-a06db2c16c377da244c347463d79d7a2",InstalledPackageId "attoparsec-0.10.2.0-5ef178c29a6230f370b80f4fabc47470",InstalledPackageId "base-4.3.1.0-91c3839608ff4d3ec95f734c5ae4f31c",InstalledPackageId "bytestring-0.9.1.10-6aa1efbfa95d1689fc03d61e7c4b27c4",InstalledPackageId "containers-0.4.0.0-b4885363abca642443ccd842502a3b7e",InstalledPackageId "cpphs-1.11-ae0dbfe075a323e48ed157f8dae0f0e2",InstalledPackageId "directory-1.1.0.0-393d8e95f1c0dd6ee908e122f924ac85",InstalledPackageId "filepath-1.2.0.0-b4f4cf7e95546b00f075372f0ccb0653",InstalledPackageId "ghc-7.0.3-487f394040e12b6da51386640bab415a",InstalledPackageId "ghc-paths-0.1.0.8-1b66c72c5c422a9f6d2166a76d7fe2d4",InstalledPackageId "ghc-syb-utils-0.2.1.0-570126fe2dbfb04f85fb6bad9dfab909",InstalledPackageId "haskell-src-exts-1.13.2-915901600a68658525d3d8954bb56ba2",InstalledPackageId "mtl-2.0.1.0-5b7a9cce5565d8cc8721ba4f95becf1b",InstalledPackageId "old-time-1.0.0.6-7f15fd4b960098b2776b8c05bc17519f",InstalledPackageId "process-1.0.1.5-da4848a2eec47420cd09fe9edba7e83c",InstalledPackageId "regex-tdfa-1.1.8-46f6c798f3e1a97beaf9d177ba20f354",InstalledPackageId "syb-0.3-00d8c06f799942b01364e795b2a54d70",InstalledPackageId "text-0.11.2.1-c5a6adcb8e8c8385423e97b339cb788d",InstalledPackageId "transformers-0.2.2.0-4bbbfde1fb5c4eb17cdb1963dda698f3",InstalledPackageId "unordered-containers-0.2.1.0-c9c06c0419e3384bd411bf1ee43cc1eb",InstalledPackageId "utf8-string-0.3.7-b8c58384678e55bfda62a9801c3a6a16",InstalledPackageId "vector-0.9.1-a3aa1d7dbfb391a07dc972ed4008ac4a"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2/dist/doc/html/buildwrapper/buildwrapper.haddock"], haddockHTMLs = ["/home/sovonex/.cabal/packages/hackage.haskell.org/buildwrapper/0.5.2/buildwrapper-0.5.2/dist/doc/html/buildwrapper"]}

Stefan

JPMoresmau commented 12 years ago

Looks right to me... Are all the paths correct (ignore haddock). Do you get the same error when you build from a local folder? You don't have the same problem with other packages? I've never seen that issue before...

bytesource commented 12 years ago

Moving the tar file to a local folder, ~/Desktop in this case, and running cabal install results in the same error message.

I've never seen this issue before, either, and now I wonder if there might be anything else I could do....

JPMoresmau commented 12 years ago

Maybe run ghc-pkg check and ghc-pkg recache to make sure everything is ok in your package db

bytesource commented 12 years ago

sudo ghc-pkg check returned the following list of problems:

There are problems in package hoogle-4.2.11:
  dependency "blaze-builder-0.3.1.0-afa4730059cca1c360ba70ae11ccdea3" doesn't exist
  dependency "conduit-0.4.1.1-684e9489cf0bb52a16b6814c8eedbe39" doesn't exist
There are problems in package warp-1.2.0.1:
  dependency "blaze-builder-0.3.1.0-afa4730059cca1c360ba70ae11ccdea3" doesn't exist
  dependency "conduit-0.4.1.1-684e9489cf0bb52a16b6814c8eedbe39" doesn't exist
There are problems in package wai-1.2.0.1:
  dependency "blaze-builder-0.3.1.0-afa4730059cca1c360ba70ae11ccdea3" doesn't exist
  dependency "conduit-0.4.1.1-684e9489cf0bb52a16b6814c8eedbe39" doesn't exist
There are problems in package network-conduit-0.4.0:
  dependency "conduit-0.4.1.1-684e9489cf0bb52a16b6814c8eedbe39" doesn't exist
There are problems in package blaze-builder-conduit-0.4.0.2:
  dependency "blaze-builder-0.3.1.0-afa4730059cca1c360ba70ae11ccdea3" doesn't exist
  dependency "conduit-0.4.1.1-684e9489cf0bb52a16b6814c8eedbe39" doesn't exist
There are problems in package http-types-0.6.10:
  dependency "blaze-builder-0.3.1.0-afa4730059cca1c360ba70ae11ccdea3" doesn't exist
There are problems in package case-insensitive-0.4.0.1:
  dependency "hashable-1.1.2.3-0dedd9d5248e830de382ed03c7ae5deb" doesn't exist

The following packages are broken, either because they have a problem
listed above, or because they depend on a broken package.
hoogle-4.2.11
warp-1.2.0.1
wai-1.2.0.1
network-conduit-0.4.0
blaze-builder-conduit-0.4.0.2
http-types-0.6.10
case-insensitive-0.4.0.1

Unfortunately I have no idea if these problems are related to buildwrapper.

JPMoresmau commented 12 years ago

a priori no, buildwrapper does not use any of these packages. You may want to state your problem on stackoverflow or haskell-cafe. There is no error specific to buildwrapper, so maybe others would have an idea of how an executable cannot find the library defined in the same project... There was a message about test-suite, though, so maybe in your local folder try to remove the test-suite section from the cabal file (just keep the library and the executable) and see...

bytesource commented 12 years ago

Removing the test folder before running cabal install did not work, unfortunately.

I am going to search Stackoverflow for this issue and ask a question if I cannot find any related problem.

Thank you very much for patience and help!

JPMoresmau commented 12 years ago

I meant removing the section in the cabal file, yes? You don't see the warning about test-suite not being a known section type?

bytesource commented 12 years ago

Removing the test-suite part from buildwrapper.cabal did not work either.

I deleted the following content:


test-suite buildwrapper-test
  type:            exitcode-stdio-1.0
  hs-source-dirs:  test
  build-depends:   
                   base < 5,
                   buildwrapper,
                   HUnit,
                   mtl,
                   filepath,
                   directory,
                   Cabal,
                   old-time,
                   aeson >=0.4,
                   text,
                   process,
                   bytestring,
                   attoparsec,
                   test-framework,
                   test-framework-hunit,
                   transformers
JPMoresmau commented 12 years ago

there's a bit more under that, but yes, that's it.

bytesource commented 12 years ago

As was suggested in this answer on Stackoverflow, today I removed my ~/.cabal and ~/.ghc folders and then ran the following commands:

$ cabal update
$ cabal install cabal-install
$ cabal install buildwrapper

After an extremely long build time, I received the same error message as before:

[...]
Registering buildwrapper-0.5.2...
<command line>: cannot satisfy -package-id buildwrapper-0.5.2
    (use -v for more information)
cabal: Error: some packages failed to install:
buildwrapper-0.5.2 failed during the building phase. The exception was:
ExitFailure 1

During the build there were a lot of warnings (I guess) of the following form:

SpecConstr
    Function `$wa{v s1lLy} [lid]'
      has five call patterns, but the limit is 1
    Use -fspec-constr-count=n to set the bound
    Use -dppr-debug to see specialisations

but nothing that caused the build to stop prematurely.

ghc-pkg check also did not report any errors.