Oh, I incorrectly assumed that the failure has anything to do with your
overriding. But if you do

$ nix-build -E "with (import <nixpkgs> {}); with haskell.lib; dontCheck
(haskell.packages.ghc801.comonad)"

that does fail in the same way, so in fact the overriding is not related at
all to the issue your encountering here.

Since transformers is a library that is shipped with GHC itself, it's ok
for it to not be in the dependencies of the comonad derivation. What really
happens is that cabal's error message is a little bit bad in this case: it
says that it can't find a package transformers *that matches the given
version bounds*.  There actually *is* a transformers package available at
the build time of comonad, it's just that GHC 8.0 ships with
`transformers-0.5.*`, which lies outside of the version bounds specified in
comonad's cabal file. So the issue is not that `transformers` is missing,
but rather that the ghc-provided version is too new for `comonad`.

You can verify that by dropping into the nix-shell for the `ghc-8.0`
package (that's how I've found out that transformers is indeed shipped with
ghc):

$ nix-shell --pure -p haskell.compiler.ghc801 --command "env TERM=xterm
ghc-pkg list transformers"
/nix/store/0ymhbixr9hdmr3sls7mn3qc6vb10kb8a-ghc-8.0.0.20160204/lib/ghc-8.0.0.20160204/package.conf.d
    transformers-0.5.1.0

[I hope my analysis is correct this time :D unfortunately, it seems that in
the version of nixpkgs
that I am using, I can't even get as far as build comonad: some
dependencies before that already fail to build for me]

To fix the issue, you can try overriding the `comonad` package to allow
newer transformers versions: (no idea if comonad builds/works with newer
transformers though as-is or if it needs additional patches by the
maintainers first):

comonad = doJailbreak old.comonad # add this line to your overrides

Kosyrev Serge <_deepf...@feelingofgreen.ru> schrieb am So., 21. Feb. 2016
um 20:38 Uhr:

> Benno Fünfstück <benno.fuenfstu...@gmail.com> writes:
> > Oops, small to the code example: the line should be `let parent =
> > (oldArgs.overrides or (_: _: {})) new old` (new instead of parent in
> > the second to last word)
>
> Benno, thank you a lot for responding!
>
> Unfortunately it still doesn't work, for some reason, in the same way.
>
> In case you or anyone feels like taking a look -- I have posted the nix
> expression at:
>
>   https://gist.github.com/deepfire/e455da624417acc3091f
>
> --
> с уважениeм / respectfully,
> Косырев Сергей
>
_______________________________________________
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to