[Hackage] #832: Cabal aggregates dependencies for executables

#832: Cabal aggregates dependencies for executables ----------------------------+----------------------------------------------- Reporter: juhp | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.10.1.0 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- I discovered over the weekend while trying to subpackage bluetile, that Cabal seems to aggregate dependencies of executables. For example http://hackage.haskell.org/packages/archive/bluetile/0.5.3/bluetile.cabal generates several executables. Some depend on gtk, others not, and yet Cabal passes "--package-id gtk-..." to "ghc --make" for all of them and as a result the bluetile program (which doesn't depend on gtk) gets linked against gtk (and glade), leading to executable/dependency bloat. Only the executables that are listed with explicit build-depends on gtk should be linked against the gtk package, etc. I will try to dig into the source later and maybe even cook up a patch if I can: a code pointer would be appreciated. I assume Cabal is currently just accumulating all the build-depends which is sub-optimal. (Arguably ghc shouldn't link unused libraries to executables either, though I think that is pretty standard compiler behaviour. But I can file a bug against ghc too if appropriate.) -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/832 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#832: Cabal aggregates dependencies for executables ----------------------------+----------------------------------------------- Reporter: juhp | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.10.1.0 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- Comment(by duncan): If you change to `cabal-version: >= 1.8` then it should do what you expect. This was an old bug but we could not immediately fix it since there were lots of old packages that accidentally relied on this bug. So the fixed behaviour is opt-in by requiring a sufficiently new cabal version. I'll leave this ticket open for a bit so you can check if this does indeed fix it for you. Also, if you have any suggestion on how to make this more discoverable, that'd also be welcome. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/832#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#832: Cabal aggregates dependencies for executables ----------------------------+----------------------------------------------- Reporter: juhp | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.10.1.0 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- Comment(by elga): * [http://www.releve-identite-operateur.fr/rio-bouygues.html rio bouygues] -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/832#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects
participants (1)
-
Hackage