
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

I'm not sure what happened with the quote formatting in my original
message; sorry about that. Anyhow, I'd really appreciate it if someone
would chime in about this issue. Is it something silly that I'm not
comprehending about the build system or cabal, or is it a legitimate
bug/deficiency?
Thanks,
Will
On Thu, Feb 24, 2011 at 7:24 PM, William Knop
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

Hi all,
Not to pester, but this problem has me stumped. All of the
dependencies that ghc reports are broken/recursive are reported (with
identical versions) by ghc-pkg/cabal as being part of my bootstrap
install.
Rerunning the offending command with "-package ghc" instead of
"-package ghc-7.1.20110217" suppresses the error, but `make`
nonetheless insists on rerunning the command with the original
arguments. Furthermore, I'm unsure if I'm actually working around a
bug or if I'm instead just silencing an error that will slyly
retaliate from the shadows. It certainly seems like there's a subtlety
with cabal that I don't understand. Any help would be much
appreciated.
Will
On Sun, Feb 27, 2011 at 11:26 PM, William Knop
I'm not sure what happened with the quote formatting in my original message; sorry about that. Anyhow, I'd really appreciate it if someone would chime in about this issue. Is it something silly that I'm not comprehending about the build system or cabal, or is it a legitimate bug/deficiency?
Thanks, Will
On Thu, Feb 24, 2011 at 7:24 PM, William Knop
wrote: 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

On 04/03/11 11:49, William Knop wrote:
Hi all, Not to pester, but this problem has me stumped. All of the dependencies that ghc reports are broken/recursive are reported (with identical versions) by ghc-pkg/cabal as being part of my bootstrap install.
Rerunning the offending command with "-package ghc" instead of "-package ghc-7.1.20110217" suppresses the error, but `make` nonetheless insists on rerunning the command with the original arguments. Furthermore, I'm unsure if I'm actually working around a bug or if I'm instead just silencing an error that will slyly retaliate from the shadows. It certainly seems like there's a subtlety with cabal that I don't understand. Any help would be much appreciated.
I don't know what might case this I'm afraid. Is it reproducible from a completely clean tree? (i.e. make maintainer-clean first). Cheers, Simon
Will
On Sun, Feb 27, 2011 at 11:26 PM, William Knop
wrote: I'm not sure what happened with the quote formatting in my original message; sorry about that. Anyhow, I'd really appreciate it if someone would chime in about this issue. Is it something silly that I'm not comprehending about the build system or cabal, or is it a legitimate bug/deficiency?
Thanks, Will
On Thu, Feb 24, 2011 at 7:24 PM, William Knop
wrote: 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
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Hi Simon, thanks for the reply. Indeed it is reproducible with a
maintainer-clean tree and to be sure I even set up a fresh repo. I'm
still unclear what the underlying issue is, but I've worked around it
by first running `make` until the error, then editing
"./ghc/stage1/package-data.mk" to remove the version from the ghc dep,
and finally rerunning `make`. The resulting build performs comparably
in the test suite to previous builds, so I think it's probably an okay
workaround.
Will
On Tue, Mar 8, 2011 at 6:44 AM, Simon Marlow
On 04/03/11 11:49, William Knop wrote:
Hi all, Not to pester, but this problem has me stumped. All of the dependencies that ghc reports are broken/recursive are reported (with identical versions) by ghc-pkg/cabal as being part of my bootstrap install.
Rerunning the offending command with "-package ghc" instead of "-package ghc-7.1.20110217" suppresses the error, but `make` nonetheless insists on rerunning the command with the original arguments. Furthermore, I'm unsure if I'm actually working around a bug or if I'm instead just silencing an error that will slyly retaliate from the shadows. It certainly seems like there's a subtlety with cabal that I don't understand. Any help would be much appreciated.
I don't know what might case this I'm afraid. Is it reproducible from a completely clean tree? (i.e. make maintainer-clean first).
Cheers, Simon
Will
On Sun, Feb 27, 2011 at 11:26 PM, William Knop
wrote: I'm not sure what happened with the quote formatting in my original message; sorry about that. Anyhow, I'd really appreciate it if someone would chime in about this issue. Is it something silly that I'm not comprehending about the build system or cabal, or is it a legitimate bug/deficiency?
Thanks, Will
On Thu, Feb 24, 2011 at 7:24 PM, William Knop
wrote: 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
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

I saw this same error, building GHC 7.0.2 from source on OS X. My builds are completely scripted, so I could attempt any experiments that would help. I always expect issues with major (here, 6 => 7) version changes; here all issues surrounded cabal-install in one way or another. My issues went away when I compiled GHC 7.0.2 using a bootstrap copy of GHC 7.0.2 (rather than from GHC 6.12.3). made the new install the active GHC, and then ran ./bootstrap.sh --global to install cabal-install-0.10.2. Either the change from cabal-install-0.10.0 helped (I couldn't track down release notes) or there is a subtle difference in a GHC 7.0.2 compiled from GHC 6.12.3, that gets exposed when one tries to install cabal-install. I still can't use cabal-install on one copy of 7.0.2 to install to another copy of 7.0.2, but it looks like something I'll manage to sort out without help. I use PREFIX to localize the installation to e.g. /usr/local/ghc-7.0.2c. This requires that my script edits bootstrap.sh, as there's no way to change PREFIX from outside in --global mode. On Mar 8, 2011, at 9:44 AM, Simon Marlow wrote:
I don't know what might case this I'm afraid. Is it reproducible from a completely clean tree? (i.e. make maintainer-clean first).
Cheers, Simon

On Mar 9, 2011, at 9:44 PM, Dave Bayer wrote:
I still can't use cabal-install on one copy of 7.0.2 to install to another copy of 7.0.2, but it looks like something I'll manage to sort out without help.
cabal install cabal-install tries to install 0.8.2, and fails. cabal install cabal-install-0.10.2 works. Yes I ran cabal-update first. I have no idea where it gets the idea it should install 0.8.2 when newer versions are evident, particularly when this doesn't even work.

On 10/03/2011 02:44, Dave Bayer wrote:
I saw this same error, building GHC 7.0.2 from source on OS X.
My builds are completely scripted, so I could attempt any experiments that would help. I always expect issues with major (here, 6 => 7) version changes; here all issues surrounded cabal-install in one way or another.
My issues went away when I compiled GHC 7.0.2 using a bootstrap copy of GHC 7.0.2 (rather than from GHC 6.12.3). made the new install the active GHC, and then ran ./bootstrap.sh --global to install cabal-install-0.10.2. Either the change from cabal-install-0.10.0 helped (I couldn't track down release notes) or there is a subtle difference in a GHC 7.0.2 compiled from GHC 6.12.3, that gets exposed when one tries to install cabal-install.
Can you tell us exactly which versions of GHC and Cabal you were using when the build failed? We should be able to reproduce the problem from that. Cheers, Simon
I still can't use cabal-install on one copy of 7.0.2 to install to another copy of 7.0.2, but it looks like something I'll manage to sort out without help.
I use PREFIX to localize the installation to e.g. /usr/local/ghc-7.0.2c. This requires that my script edits bootstrap.sh, as there's no way to change PREFIX from outside in --global mode.
On Mar 8, 2011, at 9:44 AM, Simon Marlow wrote:
I don't know what might case this I'm afraid. Is it reproducible from a completely clean tree? (i.e. make maintainer-clean first).
Cheers, Simon
participants (3)
-
Dave Bayer
-
Simon Marlow
-
William Knop