Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

indirect deps on multiple versions of the same package. #6

Closed
gour opened this Issue Jul 17, 2010 · 4 comments

Comments

Projects
None yet
2 participants

gour commented Jul 17, 2010

Hello!

I'm trying to update Yesod package for Archlinux, but there are some problem with indirects deps on the same package.

See the log while building yesod:

[gour@gaura-nitai haskell-yesod] makepkg
==> Making package: haskell-yesod 0.4.1-1 (Sat Jul 17 11:14:28 CEST 2010)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
-> Found yesod-0.4.1.tar.gz
==> Validating source files with md5sums...
yesod-0.4.1.tar.gz ... Passed
==> Extracting Sources...
-> Extracting yesod-0.4.1.tar.gz with bsdtar
==> Removing existing pkg/ directory...
==> Entering fakeroot environment...
==> Starting build()...
Configuring yesod-0.4.1...
Warning: This package indirectly depends on multiple versions of the same
package. This is highly likely to cause a compile failure.
package random-1.0.0.2 requires time-1.1.4
package yesod-0.4.1 requires time-1.2.0.2
package wai-extra-0.2.0 requires time-1.2.0.2
package tagsoup-0.8 requires time-1.2.0.2
package persistent-0.1.0 requires time-1.2.0.2
package data-object-0.3.1.2 requires time-1.2.0.2
package convertible-text-0.3.0.1 requires time-1.2.0.2
Preprocessing library yesod-0.4.1...
Preprocessing executables for yesod-0.4.1...
Building yesod-0.4.1...
[ 1 of 16] Compiling Yesod.Internal ( Yesod/Internal.hs, dist/build/Yesod/Internal.o )
[ 2 of 16] Compiling Yesod.Content ( Yesod/Content.hs, dist/build/Yesod/Content.o )
[ 3 of 16] Compiling Yesod.Request ( Yesod/Request.hs, dist/build/Yesod/Request.o )
[ 4 of 16] Compiling Yesod.Handler ( Yesod/Handler.hs, dist/build/Yesod/Handler.o )
[ 5 of 16] Compiling Yesod.Hamlet ( Yesod/Hamlet.hs, dist/build/Yesod/Hamlet.o )
[ 6 of 16] Compiling Yesod.Json ( Yesod/Json.hs, dist/build/Yesod/Json.o )
[ 7 of 16] Compiling Yesod.Yesod ( Yesod/Yesod.hs, dist/build/Yesod/Yesod.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package bytestring-0.9.1.5 ... linking ... done.
Loading package filepath-1.1.0.3 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.3 ... linking ... done.
Loading package unix-2.4.0.0 ... linking ... done.
Loading package directory-1.0.1.0 ... linking ... done.
Loading package parsec-2.1.0.1 ... linking ... done.
Loading package network-2.2.1.7 ... linking ... done.
Loading package sendfile-0.6.1 ... linking ... done.
Loading package time-1.2.0.2 ... linking ... done.
Loading package wai-0.2.0 ... linking ... done.
Loading package wai-extra-0.2.0 ... linking ... done.
Loading package array-0.3.0.0 ... linking ... done.
Loading package containers-0.3.0.0 ... linking ... done.
Loading package binary-0.5.0.2 ... linking ... done.
Loading package cereal-0.2 ... linking ... done.
Loading package pureMD5-1.1.0.0 ... linking ... done.
Loading package extensible-exceptions-0.1.1.1 ... linking ... done.
Loading package transformers-0.2.1.0 ... linking ... done.
Loading package MonadCatchIO-transformers-0.2.2.0 ... linking ... done.
Loading package deepseq-1.1.0.0 ... linking ... done.
Loading package text-0.7.1.0 ... linking ... done.
Loading package blaze-html-0.1.2 ... linking ... done.
Loading package pretty-1.0.1.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package utf8-string-0.3.6 ... linking ... done.
Loading package web-routes-0.22.0 ... linking ... done.
Loading package web-routes-quasi-0.5.0 ... linking ... done.
Loading package persistent-0.1.0 ... linking ... done.
Loading package mtl-1.1.0.2 ... linking ... done.
Loading package MonadCatchIO-mtl-0.3.0.1 ... linking ... done.
Loading package neither-0.0.1 ... linking ... done.
Loading package hamlet-0.4.0 ... linking ... done.
Loading package syb-0.1.0.2 ... linking ... done.
Loading package base-3.0.3.2 ... linking ... done.
Loading package ranges-0.2.2 ... linking ... done.
Loading package email-validate-0.2.5 ... linking ... done.
Loading package failure-0.1.0 ... linking ... done.
Loading package attempt-0.3.0 ... linking ... done.
Loading package control-monad-attempt-0.3.0 ... linking ... done.

GHCi runtime linker: fatal error: I found a duplicate definition for symbol
get_current_timezone_seconds
whilst processing object file
/usr/lib/ghc-6.12.1/time-1.1.4/HStime-1.1.4.o
This could be caused by:

  • Loading two different object files which export the same symbol

  • Specifying the same object file twice on the GHCi command line

  • An incorrect `package.conf' entry, causing some object to be
    loaded twice.
    GHCi cannot safely continue in this situation. Exiting now. Sorry.

    Aborting...

The problem is that Archlinux supports Haskell platform and accompanying GHC is 6.12.1, while haskell-random needs to be updated via newer ghc.

The point is whether is possible for Yesod to use/depend libs from the Haskell platform which would make packaging much easier?

Sincerely,
Gour

Owner

snoyberg commented Jul 17, 2010

The time-1.2 issue is probably hurting a lot of people right now. Yesod, IMO, is doing the right thing, which is allowing you to use either version of the library. cabal, unfortunately, is not figuring out that it should use time-1.1.4 instead. Try explicitly putting a time=1.1.4 in the build-depends of Yesod and see if that fixes things.

gour commented Jul 18, 2010

I've tried, but it's not only Yesod involved. :-(

At the end I broke Hakyll which I need, so had to re-install ghc and now rebuilding several pkgs.

Idea of keeping deps according to Haskell Platfrom (HP) sounds good, but, otoh, it seems that HP is not ready (yet).

Owner

snoyberg commented Jul 19, 2010

I don't believe then that this is a Yesod problem; Yesod (and all its dependencies I think) can work with either time 1.1.* or 1.2.*. I don't think there's anything better I can do.

gour commented Jul 19, 2010

You're right. 'time-problem' is actually surfacing before Yesod is coming on the scene.

@snoyberg snoyberg added a commit that referenced this issue Jul 22, 2011

@snoyberg snoyberg Merge pull request #6 from Shimuuar/master
Minor refactoring
f148cde

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment