[Hackage] #677: Error: Couldn't read cabal file "./HDBC/2.2.5/HDBC.cabal"

Hackage cvs-ghc at haskell.org
Wed Jun 2 20:24:13 EDT 2010


#677: Error: Couldn't read cabal file "./HDBC/2.2.5/HDBC.cabal"
---------------------------------+------------------------------------------
  Reporter:  guest               |        Owner:         
      Type:  defect              |       Status:  closed 
  Priority:  normal              |    Milestone:         
 Component:  cabal-install tool  |      Version:  1.6.0.3
  Severity:  normal              |   Resolution:  fixed  
  Keywords:                      |   Difficulty:  unknown
Ghcversion:  6.10.4              |     Platform:  Linux  
---------------------------------+------------------------------------------
Changes (by duncan):

  * status:  new => closed
  * resolution:  => fixed


Comment:

 Fixed by editing the HDBC.cabal file for 2.2.5 and 2.2.6 on the server.

 The other workaround would have been to upgrade cabal-install.

 The problem is that the package was using the following syntax:
 {{{
   Build-Depends: HUnit, QuickCheck (>= 2.0), testpack (>= 2.0)
 }}}
 But it only declared
 {{{
 Cabal-Version: >=1.2.3
 }}}
 When in fact this version range syntax (using parentheses) requires Cabal
 1.8. The second problem is that the QA filters did not detect that this
 package was using the later syntax without properly declaring it.

 That is fixed by this patch
 {{{
 Wed Jun  2 18:37:03 BST 2010  Duncan Coutts <duncan at haskell.org>
   * Fix QA check on version range syntax to detect use of ()'s
   The problem was that we do the QA check on using the new version range
   syntax after parsing. The new syntax allows ()'s but previously the
   code threw them away in the parser stage. We now retain them in the
   AST and deal with them appropriately. This now allows the QA check to
   be accurate and detect things like "build-depends: base (>= 4.2)".
 }}}

 The hackage server and new versions of cabal-install will report:
 {{{
 HDBC-2.2.5 $ cabal check
 The following errors will cause portability problems on other
 environments:
 * The package uses full version-range expressions in a 'build-depends'
 field:
 testpack (>=2.0), QuickCheck (>=2.0). To use this new syntax the package
 needs
 to specify at least 'cabal-version: >= 1.8'. Alternatively, if broader
 compatibility is important, then convert to conjunctive normal form, and
 use
 multiple 'build-depends:' lines, one conjunct per line.

 Hackage would reject this package.
 }}}

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



More information about the cabal-devel mailing list