Build dependency problem with bytestring.

Hi all, I'm upgrading HAppS from my 0.9.2 to the current 0.9.2.1 in Hackage. Some HAppS components have built and installed (IxSet and Util). Halfway through the HAppS-State build, the GHC runtime linker gives a fatal error on finding a duplicate definition for symbol fps_minimum while loading bytestring 0.9.0.4 after having already loaded bytestring 0.9.0.1. From trial and error, I'm guessing that HAppS-State needs 0.9.0.1 but one of its build dependencies was built with 0.9.0.4. Using GHC 6.8.2 Linux here. Any suggestions on how best to currently approach this situation? Thanks, Jon

jstrait:
Hi all,
I'm upgrading HAppS from my 0.9.2 to the current 0.9.2.1 in Hackage. Some HAppS components have built and installed (IxSet and Util). Halfway through the HAppS-State build, the GHC runtime linker gives a fatal error on finding a duplicate definition for symbol fps_minimum while loading bytestring 0.9.0.4 after having already loaded bytestring 0.9.0.1. From trial and error, I'm guessing that HAppS-State needs 0.9.0.1 but one of its build dependencies was built with 0.9.0.4. Using GHC 6.8.2 Linux here.
Any suggestions on how best to currently approach this situation? .
you need to uninstall your happs build, uninstall bytestring 0.9.0.1, and start over, so all packages link against 0.9.0.4 only. Cheers, Don

Don Stewart wrote:
jstrait:
Hi all,
I'm upgrading HAppS from my 0.9.2 to the current 0.9.2.1 in Hackage. Some HAppS components have built and installed (IxSet and Util). Halfway through the HAppS-State build, the GHC runtime linker gives a fatal error on finding a duplicate definition for symbol fps_minimum while loading bytestring 0.9.0.4 after having already loaded bytestring 0.9.0.1. From trial and error, I'm guessing that HAppS-State needs 0.9.0.1 but one of its build dependencies was built with 0.9.0.4. Using GHC 6.8.2 Linux here.
Any suggestions on how best to currently approach this situation? .
you need to uninstall your happs build, uninstall bytestring 0.9.0.1, and start over, so all packages link against 0.9.0.4 only.
Cheers, Don
Thanks for the response, Don. I ended up unregistering and rebuilding many more packages against bytestring 0.9.0.4 that had previously been built against 0.9.0.1. However, GHC itself had been built with bytestring 0.9.0.1, and was showing up as broken in the package listing. So, when I was done fighting the missing dependency errors, I just reinstalled bytestring 0.9.0.1 and let the rest be, for now. Another issue I had, and I don't think this is the intended behavior of Cabal, is that when using 'cabal install --global' as root, lib files from the package would be placed under the root's own .cabal/lib/ directory. So, as a different user, I would be unable to access those lib files if they were needed for my own local build. I had to add the option '--libdir=/usr/lib/ghc-6.8.2/lib' on install, something I thought should have been implicit when using the --global option. Jon

On Fri, 2008-03-07 at 00:59 -0800, Jon Strait wrote:
Don Stewart wrote:
jstrait:
Hi all,
I'm upgrading HAppS from my 0.9.2 to the current 0.9.2.1 in Hackage. Some HAppS components have built and installed (IxSet and Util). Halfway through the HAppS-State build, the GHC runtime linker gives a fatal error on finding a duplicate definition for symbol fps_minimum while loading bytestring 0.9.0.4 after having already loaded bytestring 0.9.0.1. From trial and error, I'm guessing that HAppS-State needs 0.9.0.1 but one of its build dependencies was built with 0.9.0.4. Using GHC 6.8.2 Linux here.
Any suggestions on how best to currently approach this situation? .
you need to uninstall your happs build, uninstall bytestring 0.9.0.1, and start over, so all packages link against 0.9.0.4 only.
Cheers, Don
Thanks for the response, Don. I ended up unregistering and rebuilding many more packages against bytestring 0.9.0.4 that had previously been built against 0.9.0.1. However, GHC itself had been built with bytestring 0.9.0.1, and was showing up as broken in the package listing. So, when I was done fighting the missing dependency errors, I just reinstalled bytestring 0.9.0.1 and let the rest be, for now.
The current development version of cabal detects theses problems of inconsistent versions of dependencies and warns about them and provides detail on what packages have conflicting dependencies. The next step is rather harder which is to get cabal-install to make installation plans that avoid the problem in the first place, possibly by rebuilding existing packages against different versions of their dependencies.
Another issue I had, and I don't think this is the intended behavior of Cabal, is that when using 'cabal install --global' as root, lib files from the package would be placed under the root's own .cabal/lib/ directory. So, as a different user, I would be unable to access those lib files if they were needed for my own local build. I had to add the option '--libdir=/usr/lib/ghc-6.8.2/lib' on install, something I thought should have been implicit when using the --global option.
Sorry about that. You'll be glad to know however that we fixed it the other day. Upgrade to the latest darcs version of the Cabal lib and cabal-install. If you find the problem isn't fixed or you run into other issues please do report them! :-) http://hackage.haskell.org/trac/hackage/ Duncan
participants (3)
-
Don Stewart
-
Duncan Coutts
-
Jon Strait