Re: ANN: cabal-debian et el
At Mon, 06 Apr 2009 07:18:45 +0100,
Magnus Therning wrote:
> Yes, I understand that. However, that message is what I get when I run
> `cabal-debian --debianize` on _cabal-install_ without having HTTP
> installed. Why do I need to have all of cabal-install's dependencies
> installed in order to run `cabal-debian --debianize` on it?
One possible answer is, how do know what the name of the debian binary
is that provides the library if you don't have the package installed?
With the debian binary installed you can do:
1. find cabal package name
2. find files associated with the package
3. map those files back to the deb(s) that provide(s) them
The other option is to just assume that package 'foo' is provided by
libghc6-foo-dev. (Which is how the code actually works right now).
This is this code that that generates the error message:
simplePackageDescription :: GenericPackageDescription -> Flags
-> IO (Compiler, PackageDescription)
simplePackageDescription genPkgDesc flags = do
(compiler, _) <- configCompiler (Just (rpmCompiler flags)) Nothing Nothing
installed <- installedPackages
case finalizePackageDescription (rpmConfigurationsFlags flags)
(Just installed) buildOS buildArch (compilerId compiler)  genPkgDesc of
Left e -> die $ "finalize failed: " ++ show e
Right (pd, _) -> return (compiler, pd)
I could change, (Just installed), to Nothing, though I have no idea
what the side effects of that will be. According to the docs,
"It takes as inputs a not necessarily complete specifications of
flags assignments, an optional package index as well as platform
parameters. If some flags are not assigned explicitly, this function
will try to pick an assignment that causes this function to
succeed. The package index is optional since on some platforms we
cannot determine which packages have been installed before. When no
package index is supplied, every dependency is assumed to be
satisfiable, therefore all not explicitly assigned flags will get
their default values."
- jeremy shaw.