GHC build error: cannot satisfy -package ghc-7.1.20110217

William Knop william.knop.nospam at gmail.com
Fri Feb 25 01:24:33 CET 2011


Hi all,

I'm building GHC HEAD, and I've encountered the following error a couple
times:

"/usr/bin/ghc" -M -dep-makefile ghc/stage1/build/.depend.haskell.tmp
>  -include-pkg-deps -H32m -O -package-conf libraries/bootstrapping.conf
> -hide-all-packages -i -ighc/. -ighc/stage1/build -ighc/stage1/build/autogen
> -Ighc/stage1/build -Ighc/stage1/build/autogen -optP-include
> -optPghc/stage1/build/autogen/cabal_macros.h -package array-0.3.0.2 -package
> base-4.3.1.0 -package bytestring-0.9.1.10 -package directory-1.1.0.0
> -package filepath-1.2.0.0 -package ghc-7.1.20110217 -package process-1.0.1.4
> -package unix-2.4.1.0 -Wall -XHaskell98 -XNondecreasingIndentation -XCPP
> -XPatternGuards -no-user-package-conf -rtsopts -odir ghc/stage1/build -hidir
> ghc/stage1/build -stubdir ghc/stage1/build -hisuf hi -osuf o -hcsuf hc
>  ghc/./Main.hs

<command line>: cannot satisfy -package ghc-7.1.20110217:

    ghc-7.1.20110217-b77087559342dd20dfcfb258ea8804c4 is unusable due to
> missing or recursive dependencies:

      Cabal-1.11.0-94afda515f19c403e7bc1e64b05e7f80
> bin-package-db-0.0.0.0-e7fefdd6f3601d1ce130006fe020c686
> hoopl-3.8.6.1-9f2c1afa2d4e6e1f5dd2821dfd6b919b
> hpc-0.5.0.6-71c33aa47ae2440fd78a2a606987bc82

    (use -v for more information)

make[1]: *** [ghc/stage1/build/.depend.haskell] Error 1

make: *** [all] Error 2


The last time I saw this, I realized that `make clean` and even `make
maintainer-clean` failed to remove the old .hs and .o files in ./libraries.
I ran `find ./libraries | grep "\.hi$\|\.o$" | xargs -n 1 rm` which cleaned
things up nicely. Then I had to fiddle around with `ghc-pkg` and
unfortunately I don't remember exactly what I did, but everything built
fine.

This time, the error persists and I'm getting nowhere messing with `ghc-pkg`
or manual builds of the offending libraries. It's odd that the dependencies
are all shown, although ghc-7.1.20110217 is highlighted in blue (not sure
what that means):

$ ghc-pkg list -v

using cache:
> /Users/wknop/.ghc/x86_64-darwin-7.1.20110217/package.conf.d/package.cache

using cache:
> /Library/Frameworks/GHC.framework/Versions/7.1.20110217-x86_64/usr/lib/ghc-7.1.20110217/package.conf.d/package.cache

/Library/Frameworks/GHC.framework/Versions/7.1.20110217-x86_64/usr/lib/ghc-7.1.20110217/package.conf.d

   Cabal-1.11.0 (Cabal-1.11.0-94afda515f19c403e7bc1e64b05e7f80)

   array-0.3.0.2 (array-0.3.0.2-82b79889a63c9f1c51bec752ba6e74c2)

   base-4.3.1.0 (base-4.3.1.0-772e705367f0e57fa35bb2732ef27d5f)

   bin-package-db-0.0.0.0
> (bin-package-db-0.0.0.0-e7fefdd6f3601d1ce130006fe020c686)

   binary-0.5.0.2 (binary-0.5.0.2-0fc98c736c6f368bb204d82d52e9b985)

   bytestring-0.9.1.10
> (bytestring-0.9.1.10-9ed25604136f5805a5307d3964bed1a2)

   containers-0.4.0.0 (containers-0.4.0.0-e65ebc811ae84f909e4426649d5305b6)

   directory-1.1.0.0 (directory-1.1.0.0-af496658c243f2bddd90748bc896b9cb)

   extensible-exceptions-0.1.1.2
> (extensible-exceptions-0.1.1.2-d8c5b906654260efd7249f497d17a831)

   ffi-1.0 (builtin_ffi)

   filepath-1.2.0.0 (filepath-1.2.0.0-083d27aec2076819a3255aa35e2ce43b)

   ghc-7.1.20110217 (ghc-7.1.20110217-b77087559342dd20dfcfb258ea8804c4)

   ghc-prim-0.2.0.0 (ghc-prim-0.2.0.0-dcc46e56b3af1fa9c9fa226ef635850d)

   haskell2010-1.0.0.0
> (haskell2010-1.0.0.0-5a47cd47ec15d3267342d7569d62be69)

   haskell98-1.1.0.0 (haskell98-1.1.0.0-ff2f72cc8added329f0e4b03c5cc83e8)

   hoopl-3.8.6.1 (hoopl-3.8.6.1-9f2c1afa2d4e6e1f5dd2821dfd6b919b)

   hpc-0.5.0.6 (hpc-0.5.0.6-71c33aa47ae2440fd78a2a606987bc82)

   integer-gmp-0.2.0.2
> (integer-gmp-0.2.0.2-a1c2a972ace139a643a7e915357c7135)

   old-locale-1.0.0.2 (old-locale-1.0.0.2-f8974f34bd37bc556cfeca15f8cf9933)

   old-time-1.0.0.6 (old-time-1.0.0.6-caa2975bbf8e858473e1d88cca412718)

   pretty-1.0.2.0 (pretty-1.0.2.0-86ef771ce2f9bebde0154187a7714390)

   process-1.0.1.4 (process-1.0.1.4-8e5c7fd6eb02062956e817290e78052c)

   random-1.0.0.3 (random-1.0.0.3-ba5d71475c84afcd915bdd0c7896d252)

   rts-1.0 (builtin_rts)

   template-haskell-2.5.0.0
> (template-haskell-2.5.0.0-d8450268cce481f1f0f0609421f45d6a)

   time-1.2.0.3 (time-1.2.0.3-54ba5c61f979a06ebaa014e89cb57800)

   unix-2.4.1.0 (unix-2.4.1.0-ed4a568ba9e55a6699f0a5637de1eb70)

/Users/wknop/.ghc/x86_64-darwin-7.1.20110217/package.conf.d

   HUnit-1.2.2.3 (HUnit-1.2.2.3-cfbd4873c8348462ffebec9e0e2612ff)

   QuickCheck-2.4.0.1 (QuickCheck-2.4.0.1-203424cf15ac4e156e45863bdb6c5c3c)

   ansi-terminal-0.5.5
> (ansi-terminal-0.5.5-572a1d0154fb2632bb4e9431adf0cdb1)

   ansi-wl-pprint-0.6.3
> (ansi-wl-pprint-0.6.3-875ef2078f6bfbf85f537bf474d4db67)

   hostname-1.0 (hostname-1.0-fd008e4cbc7e53cd089e95782cd47a3a)

   mtl-2.0.1.0 (mtl-2.0.1.0-86fd290a44e249d2b21a3e6adc3985a4)

   regex-base-0.93.2 (regex-base-0.93.2-f611e499723a1c17ae67e04fe4ce3d1e)

   regex-posix-0.94.4 (regex-posix-0.94.4-9e243c82c4410fcdd8b9c4a9f579cd23)

   test-framework-0.3.3
> (test-framework-0.3.3-2e089ba99de1028033d51a65ef26cced)

   test-framework-hunit-0.2.6
> (test-framework-hunit-0.2.6-cd25c078816dfb54dc08cf64d24bcea2)

   test-framework-quickcheck2-0.2.9
> (test-framework-quickcheck2-0.2.9-0063f8833c46c25ff4d6bb13461990f8)

   transformers-0.2.2.0
> (transformers-0.2.2.0-5facb5b7c533677975df4a82c67e8639)

   xml-1.3.7 (xml-1.3.7-eb24b369ce1c655abc9947262d56223e)


The other notable thing is that the versions of the installed packages
matches the packages I am building with GHC. I initially thought that it
would be a good thing, however now I'm thinking that it's leading to some
kind of conflict between the build system and the bootstrap system.

In the past I've noticed that cabal does not deal well with different
versions of GHC, particularly that it doesn't keep track which version of
GHC is used to build and register a package (and the .cabal user directory
doesn't have separate subdirectories for different cabal versions). This is
quite annoying, since it means one can't really have test installs of GHC
without fiddling around with prefixes or sandbox construction. Anyway, I
wouldn't be surprised if conflicts from that sort of thing could cause the
issue I'm having.

So I suppose the question now is, what is the actual cause and should it be
fixed in GHC's build system or in cabal's source?

Thanks,
William
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20110224/e77c998c/attachment-0001.htm>


More information about the Glasgow-haskell-users mailing list