On 03/29/2010 06:19 PM, Reinier Lamers wrote:
> Op zondag 28 maart 2010 23:47 schreef Lennart Kolmodin:
>   
>> I've just put darcs-2.4 into Gentoo Linux.
>> It required quite a few more dependencies than darcs-2.2, they have all
>> been added to portage too.
>>     
> Good to hear!
>
> Is it difficult to deal with more dependencies on Gentoo? I'd hope that one 
> can just make one ebuild file that works with any cabalized project with only 
> minor, automated tweaks.
>   

It's not difficult, it just takes time :) Also requires some more
testing and some more work for the arch teams (who marks darcs as usable
on different platforms). It should not stop you though, libraries makes
your work easier.

We do generate ebuilds (package description files for the package
manager) with a tool called hackport, and it gives an usable result for
most packages.
It's not always without trouble though. There are usually two things;

1) Dependencies in ebuilds must be wildcard, open or exact. That is,
closed ranges are not supported.
regex-compat >= 0.71 && < 0.94    # can't translate this perfectly
In this case we just kept <0.94 as there is no version published on
hackage lower than 0.71. There is likewise no version greater than 0.92
in hackage, so actually any version of regex-compat could be used.
Similar reasoning has been done for the other dependencies.
Sometimes it's good to have a minimal allowed version, if there are many
older versions in hackage.
Same reasoning can be used to protect yourself to API changes in newer
versions of a package you need.
As maintainers of applications in distros we try to make the user
experience as smooth as possible given our limitations....

2) We usually only allow one installed version of each package. That is,
you can for example only have one version of the package utf8-string
installed when using the Gentoo package manager.
If a package is not supporting the newest version of each package it
depends on, the dependency can be broken if another haskell package in
Gentoo requires a later version, resulting in a package upgrade.
In these cases, like with mmap, we don't add version 0.5.4 to Gentoo as
hashed-storage doesn't support it but darcs seems to do, which could
potentially create a conflict.

(in my experience upgrading can break dependencies of installed
packages. when the package manager discovers the conflict it can try to
solve it, but it can get messy...)

For some few packages we allow to install several versions, like for
quickcheck (compare qc1 and qc2), and parsec (v2 vs v3) where packages
usually require different versions, resulting in much trouble if we
wouldn't allow both to be installed.
In the case of mmap as above, it's used too rarely to allow to install
two versions of the same package.


> I do hope that those tests are not going to flood our bug tracker :)
>   

Unlikely :)

Best regards,
  Lennart Kolmodin
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to