
On Sat, Jan 1, 2011 at 20:55, Rémy Oudompheng
On 2010/12/30 Magnus Therning
wrote: On Tue, Dec 28, 2010 at 09:08, Rémy Oudompheng
wrote: Hello,
Since pacman's dependency specification is much less powerful than in Cabal, cabal2arch may output wrong version constraints while trying to approximate the true specified dependencies. I prefer this to dropping all version requirements when they cannot be expressed in the pacman's way.
This sounds reasonable. However, do you have examples of dependencies that CABAL can express but pacman can't? (I was under the impression that the difference was that CABAL allowed more terse expressions, not that it allowed more.)
See the issue reported by https://github.com/archhaskell/cabal2arch/issues#issue/19. PKGBUILDs can only specify dependency requirements with one inequality (<, >, <= or >=) whereas Cabal can specify any Boolean combination of inequalities.
I think it's more correct to say that PKGBUILDS only can specify conjuctions of dependencies, which does allow it to specify both an upper and lower bound but not the more complicated dependencies that CABAL allows. However, is this really a limitation in practice for us? (I do understand that it's a limitation in that it makes it more difficult to automatically translate dependencies but I see that as a separate issue.)
In order to get improved PKGBUILDs I thought we could have a better usage of the dependency resolution capabilities in the Cabal library, this is summed up in this commit
http://github.com/remyoudompheng/archhaskell/commit/2e614b2
This adds an extra file, platform-provides.txt, that lists our preferred versions for various packages. For the moment I have filled it with the contents of Haskell Platform.
Is it worth considering downloading this file dynamically, rather than compiling it into the executable statically?
It's been some time since these lists were not compiled in the executable. I have added a flag to cabal2arch (in my copy http://github.com/remyoudompheng/cabal2arch) to handle a custom directory or URL where these files could be stored. I am using mtl for error handling.
Why not remove the file from github completely and host it in a well-known location then? /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus