1

I'm on Ubuntu 21.04 "Hirsute Hippo", GHC 8.8.4, and Cabal 3.0.0.0. I cannot install the wx package.

When I tried cabal install wx --lib directly, the following messages were outputted:

Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: wx-0.92.3.0 (user goal)
[__1] trying: wxcore-0.92.3.0 (dependency of wx +/-splitbase)
[__2] trying: wxdirect-0.92.3.0 (dependency of wxcore)
[__3] trying: strict-0.4.0.1 (dependency of wxdirect)
[__4] trying: text-1.2.4.0/installed-1.2... (dependency of strict)
[__5] next goal: binary (dependency of strict)
[__5] rejecting: binary-0.8.7.0/installed-0.8... (conflict: wxcore
+/-splitbase => containers>=0.1 && <0.6, binary =>
containers==0.6.2.1/installed-0.6...)
[__5] rejecting: binary-0.8.8.0, binary-0.8.7.0, binary-0.8.6.0,
binary-0.8.5.1, binary-0.8.5.0, binary-0.8.4.1, binary-0.8.4.0,
binary-0.8.3.0, binary-0.8.2.1, binary-0.8.2.0, binary-0.8.1.0,
binary-0.8.0.1, binary-0.8.0.0, binary-0.7.6.1, binary-0.7.6.0,
binary-0.7.5.0, binary-0.7.4.0, binary-0.7.3.0, binary-0.7.2.3,
binary-0.7.2.2, binary-0.7.2.1, binary-0.7.2.0, binary-0.7.1.0,
binary-0.7.0.1, binary-0.7.0.0, binary-0.6.4.0, binary-0.6.3.0,
binary-0.6.2.0, binary-0.6.1.0, binary-0.6.0.0, binary-0.5.1.1,
binary-0.5.1.0, binary-0.5.0.2, binary-0.5.0.1, binary-0.5, binary-0.4.5,
binary-0.4.4, binary-0.4.3.1, binary-0.4.3, binary-0.4.2, binary-0.4.1,
binary-0.4, binary-0.3, binary-0.2, binary-0.10.0.0, binary-0.9.0.0 (conflict:
text => binary==0.8.7.0/installed-0.8...)
[__5] fail (backjumping, conflict set: binary, strict, text, wxcore)
Backjump limit reached (currently 4000, change with --max-backjumps or try to
run with --reorder-goals).

So I tried cabal install wx --lib --max-backjumps 8192 instead. It didn't help:

Resolving dependencies...
Build profile: -w ghc-8.8.4 -O1
In order, the following will be built (use -v for more details):
- old-locale-1.0.0.7 (lib) (requires build)
- old-time-1.1.0.3 (lib:old-time) (requires build)
- wxcore-0.11.1.2 (lib:wxcore) (requires build)
- wx-0.11.1.2 (lib:wx) (requires build)
Starting     old-locale-1.0.0.7 (lib)
Building     old-locale-1.0.0.7 (lib)
Installing   old-locale-1.0.0.7 (lib)
Completed    old-locale-1.0.0.7 (lib)
Starting     old-time-1.1.0.3 (all, legacy fallback)
Building     old-time-1.1.0.3 (all, legacy fallback)
Installing   old-time-1.1.0.3 (all, legacy fallback)
Completed    old-time-1.1.0.3 (all, legacy fallback)
Starting     wxcore-0.11.1.2 (all, legacy fallback)
cabal: Failed to build wxcore-0.11.1.2 (which is required by wx-0.11.1.2). The
failure occurred during the configure step. The build process terminated with
exit code 2

It seems that wx is no longer updated since containers went to version 0.6. That's the major culprit of this dependency hell.

Does anyone know how to resolve this? Or is wx unusable for now? I sent a message to wxHaskell mailing list, but they didn't respond.

Dannyu NDos
  • 2,458
  • 13
  • 32
  • Does running with `-v`, as is recommended in the messages above, provide more details of what failure exactly has occurred? – VZ. Jun 03 '21 at 09:54
  • The problem seems to be that wxcore is old and has a low upper bound for containers. You could try --allow-newer=containers on the command line, or the equivalent setting allow-newer: containers on the cabal.project file https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=allow-newer#cfg-field-allow-newer – danidiaz Jun 03 '21 at 13:12
  • Can you set up a Cabal project and work within that? Then you should be able to use an older `containers`. – dfeuer Jun 03 '21 at 19:12
  • @VZ. I tried it, and the message is too long. – Dannyu NDos Jun 04 '21 at 01:37

1 Answers1

2

Or is wx unusable for now?

Yes, it's currently unmaintained, and the version bounds are more or less correct. The code on the GitHub repository is a bit more up to date than the code on Hackage, and compiles with a more recent GHC version, but still fails on the current one.

Unless you're willing to to bring wxHaskell up to date with the ecosystem (well, or to use an old GHC), you're probably better off trying another UI library.

fgaz
  • 36
  • 2