[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ANN: cabal-debian et el



On Mon, Apr 6, 2009 at 1:56 PM, David Fox <ddssff@gmail.com> wrote:
> On Mon, Apr 6, 2009 at 5:27 AM, Magnus Therning <magnus@therning.org> wrote:
>>
>> On Mon, Apr 6, 2009 at 1:18 PM, David Fox <ddssff@gmail.com> wrote:
>> > On Sun, Apr 5, 2009 at 11:18 PM, Magnus Therning <magnus@therning.org>
>> > wrote:
>> >>
>> >> David Fox wrote:
>> >> > On Sun, Apr 5, 2009 at 3:14 PM, Magnus Therning <magnus@therning.org
>> >> > <mailto:magnus@therning.org>> wrote:
>> >> >
>> >> >     Jeremy Shaw wrote:
>> >> >     > Hello,
>> >> >     >
>> >> >     > Having received no negative feedback, I uploaded the latest
>> >> > version of
>> >> >     > cabal-debian to hackage. cabal-debian is part of the debian
>> >> > package
>> >> >     > which features:
>> >> >
>> >> >     As you know I do like the idea of cabal-debian.  There's one
>> >> > thing
>> >> > that
>> >> >     I wonder over though, why do I have to have all the dependencies
>> >> > of
>> >> > a
>> >> >     package installed in order to debianize it?
>> >> >
>> >> >     % ~/.cabal/bin/cabal-debian --debianize
>> >> >     cabal-debian: finalize failed: [Dependency (PackageName "HTTP")
>> >> >     (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version
>> >> >     {versionBranch = [4000,0,2], versionTags = []})) (LaterVersion
>> >> > (Version
>> >> >     {versionBranch = [4000,0,2], versionTags = []}))) (EarlierVersion
>> >> >     (Version
>> >> >     {versionBranch = [4001], versionTags = []})))]
>> >> >
>> >> >     /M
>> >> >
>> >> >
>> >> > That message means that finalizePackageDescription in the Cabal
>> >> > library
>> >> > failed.  If that fails it doesn't have a packageDescription, which I
>> >> > think is the parsed version of the cabal file plus more computed
>> >> > information. Cabal-debian gets lots of info from the package
>> >> > description: the license file, the dependencies, the list of
>> >> > executables, and so on.  And the fact that the cabal file is valid...
>> >>
>> >> 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?
>> >
>> > Only because cabal-debian calls cabal to load the package information,
>> > and
>> > cabal fails if the dependencies aren't installed.
>>
>> What do you mean "calls cabal"?  Does it compile Setup.{l,}hs and call
>> the resulting binary, or does it use the Distribution.* modules to
>> parse the .cabal file?
>>
>> If it's the latter then I see no reason to require a dependency to be
>> installed.  At least not at that stage in the debianisation.
>
> It uses the Distribution.* modules to parse the .cabal file.  I am sure you
> are right that there is a way to avoid having the dependencies installed to
> do this, but I was unable to find it when I wrote the code.  So far we
> haven't been inconvenienced too much by this requirement.

This is how I do it: http://therning.org/magnus/archives/514

Well, if cabal-debian were to be used to debianise all of hackage
automatically then it would be inconvenient to install all
dependencies of all packages, wouldn't it?  (AFAICS it would take
longer time, take more space, and require that packages be debianised
in the correct order.)

/M

-- 
Magnus Therning                        (OpenPGP: 0xAB4DFBA4)
magnus@therning.org          Jabber: magnus@therning.org
http://therning.org/magnus         identi.ca|twitter: magthe


Reply to: