[Hackage] #731: Custom Build-type with --package-db and --global encounters runtime error

Hackage cvs-ghc at haskell.org
Thu Aug 26 18:43:44 EDT 2010


#731: Custom Build-type with --package-db and --global encounters runtime error
---------------------------------+------------------------------------------
  Reporter:  cygnus              |        Owner:         
      Type:  defect              |       Status:  new    
  Priority:  normal              |    Milestone:         
 Component:  cabal-install tool  |      Version:  1.8.0.4
  Severity:  normal              |     Keywords:         
Difficulty:  unknown             |   Ghcversion:  6.12.2 
  Platform:  Linux               |  
---------------------------------+------------------------------------------
 To reproduce:

  * Run `cabal init`, change `Build-type` to `Custom` (`Setup.hs` already
 provided by `cabal init`)
  * Run `ghc-pkg init db`
  * Run `cabal configure --package-db=./db --global`
  * Output:
 {{{
 Resolving dependencies...
 cabal: internal error: unexpected package db stack
 }}}

 In `cabal-install-0.8.2`, this appears to be caused by the code on lines
 112-114 of `Distribution.Client.Configure`:
 {{{
 usePackageDB = if UserPackageDB `elem` packageDBs
                  then packageDBs
                  else packageDBs ++ [UserPackageDB]
 }}}
 in combination with the code on lines 297-306 of
 `Distribution.Client.SetupWrapper`:
 {{{
 ghcPackageDbOptions :: PackageDBStack -> [String]
 ghcPackageDbOptions dbstack = case dbstack of
   (GlobalPackageDB:UserPackageDB:dbs) -> concatMap specific dbs
   (GlobalPackageDB:dbs)               -> "-no-user-package-conf"
                                        : concatMap specific dbs
   _                                   -> ierror
   where
     specific (SpecificPackageDB db) = [ "-package-conf", db ]
     specific _ = ierror
     ierror     = error "internal error: unexpected package db stack"
 }}}
 Essentially, the order of the package databases in the stack is not as
 expected since the list already contains a `SpecificPackageDB` when the
 `UserPackageDB` is appended.

 (Note: this applies to GHC 6.12.3 and Cabal 1.8.0.6 on my system, but I
 could not select those versions in the ticket properties.)

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



More information about the cabal-devel mailing list