id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	difficulty	ghcversion	platform
731	Custom Build-type with --package-db and --global encounters runtime error	cygnus		"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.)"	defect	closed	normal	cabal-install-0.14	cabal-install tool	1.8.0.4	normal	fixed		josh.hoyt@… jtd@… Erkok hvr@…	unknown	6.12.2	Linux
