Problem configuring c2hs with Cabal-1.2

Thomas Schilling nominolo at
Thu Sep 13 18:38:55 EDT 2007

On Thu, 2007-09-13 at 14:38 -0700, Judah Jacobson wrote:
> I just downloaded c2hs (HEAD version) and tried to run "runhaskell
> Setup.hs configure" using the ghc 6.8 release candidate (i.e., Cabal
> 1.2), and got the following error:
> > Configuring c2hs-0.15.0...
> > Setup.hs: Error: Non-empty library, but empty exposed modules list. Cabal may not build this library correctly
> The .cabal file is parseable by ghc-6.6.1 (with Cabal  It's
> unclear to me whether this counts as a c2hs bug or a Cabal bug (maybe
> the above message should only be a warning?), so I'm cc'ing both
> lists.
> Also note that regardless, c2hs will need to be updated to work with
> base-2.0; when I tried ghc-6.8 with Cabal-1.1.6, I got the following
> error:
> > base/state/CIO.hs:71:7:
> >     Could not find module `System.Cmd':
> >       it is a member of package process-1.0, which is hidden

Thanks for the report.  The quick fix is to comment out the build-tools
field.  The other solution would be to use the sectionized format and
move the build-tools and build-depends fields into the executable
section, i.e.,

Executable c2hs
  Build-Depends: base, filepath
  Build-Tools:   happy, alex
  -- ...

The problem with this is, that this will require Cabal-1.2 and will not
be backwards compatible to old versions of Cabal(!).  (If you use an old
Cabal on that same file you should actually get a warning about an
unknown field during configure.)

The error when using Cabal < 1.2, however, is most likely not related to
Cabal, but to the base split-up, i.e., c2hs probably has to depend on
'process' if 'base >= 2.0'. 

Of course, the current dying of Cabal is not acceptable, I'm working on
a patch.

/ Thomas

More information about the cabal-devel mailing list