Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency on haskell-gi-overloading in jsaddle-webkit2gtk still constrained to 0.0. #38

Open
seanparsons opened this issue Sep 21, 2017 · 6 comments

Comments

@seanparsons
Copy link

This seems to be causing me some grief where I can't immediately see the way out of a dependency corner because of this, other things related to these projects are forcing version 1.0 of haskell-gi-overloading.

@seanparsons seanparsons changed the title Dependency on haskell-gi-overloading still constrained to 0.0. Dependency on haskell-gi-overloading in jsaddle-webkit2gtk still constrained to 0.0. Sep 21, 2017
@hamishmack
Copy link
Member

What is forcing it to be 1.0? Is it really using the haskell-gi overloading features? Haskell-gi overloading has a big impact on GHC performance (including ghci load times).

@seanparsons
Copy link
Author

I've got a project that is depending on ghcjs-dom and jsaddle-webkit2gtk. Stack has had me whittling down extra deps to set and I ended up with these:

- ghcjs-dom-0.9.2.0
- jsaddle-webkit2gtk-0.9.4.0
- ghcjs-dom-jsaddle-0.9.2.0
- gi-webkit2-4.0.14
- jsaddle-0.9.4.0
- webkit2gtk3-javascriptcore-0.14.2.1
- jsaddle-dom-0.9.2.0
- ref-tf-0.4.0.1

Where stack build gives me:

> stack build

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for gi-webkit2-4.0.14:
    gi-javascriptcore-3.0.14 must match ==4.0.* (latest applicable is 4.0.14)
needed due to myproject-0.1.0.0 -> gi-webkit2-4.0.14

In the dependencies for jsaddle-webkit2gtk-0.9.4.0:
    gi-javascriptcore-3.0.14 must match >=4.0.14 && <4.1 (latest applicable is 4.0.14)
    haskell-gi-overloading-1.0 must match ==0.0.* (latest applicable is 0.0)
needed due to myproject-0.1.0.0 -> jsaddle-webkit2gtk-0.9.4.0

Plan construction failed.

If I add haskell-gi-overloading-0.0, then I get this:

> stack build

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for gi-atk-2.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-atk-2.0.14

In the dependencies for gi-cairo-1.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-cairo-1.0.14

In the dependencies for gi-gdk-3.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-gdk-3.0.14

In the dependencies for gi-gdkpixbuf-2.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-gdkpixbuf-2.0.14

In the dependencies for gi-gio-2.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-gio-2.0.14

In the dependencies for gi-glib-2.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-glib-2.0.14

In the dependencies for gi-gobject-2.0.15:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-gobject-2.0.15

In the dependencies for gi-gtk-3.0.17:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-gtk-3.0.17

In the dependencies for gi-javascriptcore-3.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-javascriptcore-3.0.14

In the dependencies for gi-pango-1.0.15:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-pango-1.0.15

In the dependencies for gi-soup-2.4.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-soup-2.4.14

In the dependencies for gi-webkit2-4.0.14:
    haskell-gi-overloading-0.0 must match ==1.0.* (latest applicable is 1.0)
needed due to myproject-0.1.0.0 -> gi-webkit2-4.0.14

Plan construction failed.

I might be putting too much trust into stack's suggestions granted, but I don't immediately see the answer.

@hamishmack
Copy link
Member

Stack does not support cabal's automatic flag feature. Instead you have to explicitly set them.

You can try using cabal new-build instead or set the flags manually in your stack.yaml (like this).

With Stack it is also not possible for packages to detect the version of native libraries installed when using stack or even the OS that you are building on.

@seanparsons
Copy link
Author

Oh I see, would it be possible to have a note to this effect in the readme? I'd be surprised if I was the only person caught out by this.

@hamishmack
Copy link
Member

I have added a note to the bottom of the readme. I'll leave this issue open to make it easier to find.

@seanparsons
Copy link
Author

@hamishmack Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants