[Hackage] #680: Spec should define the interpretation of the library and includes and search dirs

Hackage cvs-ghc at haskell.org
Wed May 5 09:28:11 EDT 2010


#680: Spec should define the interpretation of the library and includes and
search dirs
----------------------------------+-----------------------------------------
  Reporter:  duncan               |        Owner:     
      Type:  enhancement          |       Status:  new
  Priority:  normal               |    Milestone:     
 Component:  Cabal specification  |      Version:     
  Severity:  normal               |     Keywords:     
Difficulty:  unknown              |   Ghcversion:     
  Platform:                       |  
----------------------------------+-----------------------------------------
 See http://hackage.haskell.org/trac/ghc/ticket/3930

 The Cabal spec should say how to interpret the `extra-libraries` and
 `library-dirs` fields in the installed package info. Specifically how this
 information is interpreted in relation to package dependencies which may
 also specify libraries and search paths.

 The interpretation should be that all the `extra-libraries` required by a
 installed package should be found in `library-dirs` given in that
 installed package info, or in the "standard" system linker path (as used
 by the standard system linker). That is, the `library-dirs` of dependent
 packages should not be used.

 For example:
 {{{
 -- installed package gtk:
 extra-libraries: gtk-x11-2.0
 library-dirs:
 depends: glib

 -- installed package glib:
 extra-libraries: glib-2.0
 library-dirs: /opt/local/lib
 }}}

 We presume here that `/opt/local/lib` is not on the standard linker path.
 Then we should only look for the `gtk-x11-2.0` library on the paths
 specified in the gtk package, which in this case is empty, so that means
 only on the system linker path. If `gtk-x11-2.0` is in fact only in
 `/opt/local/lib` then this will and should fail. We should not use the
 library dirs of the `glib` package to find the libraries of the `gtk`
 package.

 The correct information for the above example would be to list `library-
 dirs: /opt/local/lib` for the gtk package also.

-- 
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/680>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects



More information about the cabal-devel mailing list