<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Sat, 11 Mar 2017 at 01:38 Jun Inoue <<a href="mailto:jun.lambda@gmail.com">jun.lambda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for the suggestion, Adam.  That does it for xmonad-contrib.<br class="gmail_msg">
Unfortunately, it fails when I go on to add xmonad-extras, probably<br class="gmail_msg">
because the version of xmonad already installed can't be resolved with<br class="gmail_msg">
the available version(s) of xmonad-extras.  (I forgot to note exactly<br class="gmail_msg">
which packages I had before, so I'm installing these things one by<br class="gmail_msg">
one, based on compilation errors of ~/.xmonad/xmonad.hs.)<br class="gmail_msg">
<br class="gmail_msg">
  $ stack install xmonad-extras hint-0.6.0 libmpd-0.9.0.6 --resolver lts-8.4<br class="gmail_msg">
<br class="gmail_msg">
  Error: While constructing the build plan, the following exceptions<br class="gmail_msg">
were encountered:<br class="gmail_msg">
<br class="gmail_msg">
  In the dependencies for xmonad-extras-0.12.1:<br class="gmail_msg">
      hint-0.6.0 must match >=0.3.3.3 && <0.5 (latest applicable is 0.4.3)<br class="gmail_msg">
      libmpd-0.9.0.6 must match >=0.8 && <0.9 (latest applicable is 0.8.0.5)<br class="gmail_msg">
      xmonad-0.13 must match >=0.10 && <0.13 (latest applicable is 0.12)<br class="gmail_msg">
      xmonad-contrib must match >=0.10 && <0.13, but the stack<br class="gmail_msg">
configuration has no specified version<br class="gmail_msg">
                     (latest applicable is 0.12)<br class="gmail_msg">
<br class="gmail_msg">
  Recommended action: try adding the following to your extra-deps in<br class="gmail_msg">
/home/jun/.stack/global-project/stack.yaml:<br class="gmail_msg">
  - xmonad-contrib-0.12<br class="gmail_msg">
<br class="gmail_msg">
  You may also want to try the 'stack solver' command<br class="gmail_msg">
  Plan construction failed.<br class="gmail_msg">
<br class="gmail_msg">
Adding the fact that I seem to have to list a lot of deps on the<br class="gmail_msg">
command line or in stack.yaml and Brandon's suggestion that I'm using<br class="gmail_msg">
this tool for the wrong purpose, this seems like a deal breaker for me<br class="gmail_msg">
:(<br class="gmail_msg">
<br class="gmail_msg"></blockquote><div><br></div><div>It's not that you are using the wrong tool, there is no tool that would let you install incompatible versions together! (There is --allow-newer in stack and cabal-install but then you are even less likely to end up with something that works)</div><div><br></div><div>But once you get these mismatches I find cabal-install (in an empty sandbox) easier to use for debugging:</div><div><br></div><div>```</div><div><div>$ cabal install xmonad xmonad-contrib xmonad-extras --dry</div><div>Resolving dependencies...</div><div>In order, the following would be installed (use -v for more details):</div><div>data-default-class-0.1.2.0</div><div>data-default-instances-containers-0.0.1</div><div>dlist-0.8.0.2</div><div>data-default-instances-dlist-0.0.1</div><div>extensible-exceptions-0.1.1.4</div><div>mtl-2.2.1</div><div>old-locale-1.0.0.7</div><div>data-default-instances-old-locale-0.0.1</div><div>data-default-0.7.1.1</div><div>X11-1.6.1.2 (latest: 1.8)</div><div>old-time-1.1.0.3</div><div>random-1.1</div><div>regex-base-0.93.2</div><div>regex-posix-0.95.2</div><div>setlocale-1.0.0.4</div><div>split-0.2.3.1</div><div>text-1.2.2.1</div><div>parsec-3.1.11</div><div>utf8-string-1.0.1.1</div><div>X11-xft-0.3.1</div><div>xmonad-0.12 (latest: 0.13)</div><div>xmonad-contrib-0.12 (latest: 0.13)</div><div>xmonad-extras-0.12.1</div></div><div>```</div><div><br></div><div>cabal-install always tries to pick the latest versions so this implies that xmonad-extras can't use the latest xmonad & xmonad-contrib. So if you are fine using older versions of those: there you go!</div><div><br></div><div>You can verify this further by adding constraints: </div><div><br></div><div>```</div><div><div>$ cabal install 'xmonad>=0.13' 'xmonad-contrib>=0.13' xmonad-extras --dry</div><div>Resolving dependencies...</div><div>cabal: Could not resolve dependencies:</div><div>trying: xmonad-0.13 (user goal)</div><div>trying: base-4.9.1.0/installed-4.9... (dependency of xmonad-0.13)</div><div>next goal: xmonad-extras (user goal)</div><div>rejecting: xmonad-extras-0.12.1, xmonad-extras-0.12 (conflict: xmonad==0.13,</div><div>xmonad-extras => xmonad>=0.10 && <0.13)</div><div>rejecting: xmonad-extras-0.11 (conflict: xmonad==0.13, xmonad-extras =></div><div>xmonad>=0.10 && <0.12)</div><div>rejecting: xmonad-extras-0.10.1.2, xmonad-extras-0.10.1.1,</div><div>xmonad-extras-0.10.1, xmonad-extras-0.10 (conflict: xmonad==0.13,</div><div>xmonad-extras => xmonad>=0.10 && <0.11)</div><div>rejecting: xmonad-extras-0.9.2, xmonad-extras-0.9.1 (conflict: xmonad==0.13,</div><div>xmonad-extras => xmonad>=0.9 && <0.10)</div><div>rejecting: xmonad-extras-0.9, xmonad-extras-0.0 (conflict:</div><div>base==<a href="http://4.9.1.0/installed-4.9..">4.9.1.0/installed-4.9..</a>., xmonad-extras => base>=3 && <4 || <3)</div><div>Dependency tree exhaustively searched.</div></div><div>```</div><div><br></div><div>What you really want is some blessed combination of packages that work together, and this is exactly what a stackage snapshot would give you if these packages were all part of stackage...</div><div><br></div><div>But it's true that stack isn't a package manager and there is no active effort within stackage to make as many executables as possible installable.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Sat, Mar 11, 2017 at 4:11 AM, Adam Bergmark <<a href="mailto:adam@bergmark.nl" class="gmail_msg" target="_blank">adam@bergmark.nl</a>> wrote:<br class="gmail_msg">
> I use the global stack environment to install most executables, it works<br class="gmail_msg">
> best when the package is in a snapshot of course. There is no need to change<br class="gmail_msg">
> the global config, try this: stack install xmonad-contrib X11-xft-0.3.1<br class="gmail_msg">
> --resolver lts-8.4<br class="gmail_msg">
><br class="gmail_msg">
>  You can also look for a stack.yaml in the repo of the executable and use<br class="gmail_msg">
> that resolver + any extra deps on the command line, that'll most likely work<br class="gmail_msg">
> even if the package isn't in a snapshot.<br class="gmail_msg">
><br class="gmail_msg">
> HTH,<br class="gmail_msg">
> Adam<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> On Fri, 10 Mar 2017 at 18:56 Matt <<a href="mailto:parsonsmatt@gmail.com" class="gmail_msg" target="_blank">parsonsmatt@gmail.com</a>> wrote:<br class="gmail_msg">
>><br class="gmail_msg">
>> Stack does have a notion of a global project, which it uses if you're not<br class="gmail_msg">
>> in a project directory. The error message you received:<br class="gmail_msg">
>><br class="gmail_msg">
>>   Error: While constructing the build plan, the following exceptions<br class="gmail_msg">
>>   were encountered:<br class="gmail_msg">
>><br class="gmail_msg">
>>   In the dependencies for xmonad-contrib-0.13:<br class="gmail_msg">
>>       X11-xft must match >=0.2, but the stack configuration has no<br class="gmail_msg">
>>       specified version (latest applicable is 0.3.1)<br class="gmail_msg">
>><br class="gmail_msg">
>>   Recommended action: try adding the following to your extra-deps in<br class="gmail_msg">
>>   /home/jun/.stack/global-project/stack.yaml:<br class="gmail_msg">
>>   - X11-xft-0.3.1<br class="gmail_msg">
>><br class="gmail_msg">
>> tells you how to make X11-xft-0.3.1 available to the global project, which<br class="gmail_msg">
>> should allow you to install xmonad-contrib into this global package.<br class="gmail_msg">
>><br class="gmail_msg">
>> Matt Parsons<br class="gmail_msg">
>><br class="gmail_msg">
>> On Fri, Mar 10, 2017 at 10:33 AM, Brandon Allbery <<a href="mailto:allbery.b@gmail.com" class="gmail_msg" target="_blank">allbery.b@gmail.com</a>><br class="gmail_msg">
>> wrote:<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> On Fri, Mar 10, 2017 at 12:28 PM, Jun Inoue <<a href="mailto:jun.lambda@gmail.com" class="gmail_msg" target="_blank">jun.lambda@gmail.com</a>> wrote:<br class="gmail_msg">
>>>><br class="gmail_msg">
>>>> Am I fundamentally misunderstanding how stack is supposed to be used?<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> Stack is not a package manager. It is a reproducible builds tool. Ad hoc<br class="gmail_msg">
>>> usage like you are doing is outside of its purview.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Also, last I checked, for some reason xmonad-contrib wasn't in stackage,<br class="gmail_msg">
>>> so stack's primary mechanism for avoiding conflicts fails.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> --<br class="gmail_msg">
>>> brandon s allbery kf8nh                               sine nomine<br class="gmail_msg">
>>> associates<br class="gmail_msg">
>>> <a href="mailto:allbery.b@gmail.com" class="gmail_msg" target="_blank">allbery.b@gmail.com</a><br class="gmail_msg">
>>> <a href="mailto:ballbery@sinenomine.net" class="gmail_msg" target="_blank">ballbery@sinenomine.net</a><br class="gmail_msg">
>>> unix, openafs, kerberos, infrastructure, xmonad<br class="gmail_msg">
>>> <a href="http://sinenomine.net" rel="noreferrer" class="gmail_msg" target="_blank">http://sinenomine.net</a><br class="gmail_msg">
>>><br class="gmail_msg">
>>> _______________________________________________<br class="gmail_msg">
>>> Haskell-Cafe mailing list<br class="gmail_msg">
>>> To (un)subscribe, modify options or view archives go to:<br class="gmail_msg">
>>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="gmail_msg" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="gmail_msg">
>>> Only members subscribed via the mailman list are allowed to post.<br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> _______________________________________________<br class="gmail_msg">
>> Haskell-Cafe mailing list<br class="gmail_msg">
>> To (un)subscribe, modify options or view archives go to:<br class="gmail_msg">
>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="gmail_msg" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="gmail_msg">
>> Only members subscribed via the mailman list are allowed to post.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> Haskell-Cafe mailing list<br class="gmail_msg">
> To (un)subscribe, modify options or view archives go to:<br class="gmail_msg">
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" class="gmail_msg" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="gmail_msg">
> Only members subscribed via the mailman list are allowed to post.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Jun Inoue<br class="gmail_msg">
</blockquote></div></div>