[Hackage] #832: Cabal aggregates dependencies for executables

Hackage cvs-ghc at haskell.org
Mon Apr 18 05:50:29 CEST 2011


#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



More information about the cabal-devel mailing list