<div dir="ltr">the work around i did for cabal 1.18 compatibility for llvm-base can be found here: <div><br></div><div><a href="https://github.com/bos/llvm/blob/master/base/Setup.hs#L116-L144">https://github.com/bos/llvm/blob/master/base/Setup.hs#L116-L144</a><br>

</div><div style>this used the fact that cabal exposes the cabal version as a library value to generate a correct wrapper for either API version</div><div style><br></div><div style>alternatively, you can change your setup.hs so that api isn&#39;t needed.</div>

<div style><br></div><div style>also: before emailing cafe, its always good to email the listed maintainers first! (i&#39;ve included them on CC for this email)</div><div><br></div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">
On Tue, Sep 10, 2013 at 9:27 PM, Thiago Negri <span dir="ltr">&lt;<a href="mailto:evohunz@gmail.com" target="_blank">evohunz@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">The package GLFW is not building in Cabal 1.18.<div><br></div><div>Setup.hs [1] depends on `rawSystemStdInOut` [2] that changed signature between 1.16 and 1.18.</div><div><br></div><div>Is this considered a public API of Cabal?</div>



<div><br></div><div><br></div><div>Cabal 1.16</div><div><div>rawSystemStdInOut</div><div> :: Verbosity</div><div> -&gt; FilePath</div><div> -&gt; [String]</div><div><span style="white-space:pre-wrap"> </span>-&gt; Maybe (String, Bool)</div>



<div><span style="white-space:pre-wrap"> </span>-&gt; Bool</div><div> -&gt; IO (String, String, ExitCode)<span style="white-space:pre-wrap">        </span></div><div><br></div></div><div><br></div><div>Cabal 1.18</div><div>rawSystemStdInOut</div>



<div> :: Verbosity<br></div><div><div> -&gt; FilePath</div><div> -&gt; [String]</div><div> -&gt; Maybe FilePath -- new arg</div><div> -&gt; Maybe [(String, String)] -- new arg</div><div> -&gt; Maybe (String, Bool)</div><div>



 -&gt; Bool</div><div> -&gt; IO (String, String, ExitCode)</div></div><div><br></div><div><br></div><div><br></div><div>Compilation output:</div><div><br></div><div><div>[1 of 1] Compiling Main             ( /tmp/GLFW-0.5.1.0-4035/GLFW-0.5.1.0/Setup.hs, /tmp/GLFW-0.5.1.0-4035/GLFW-0.5.1.0/dist/setup/Main.o )</div>



<div><br></div><div>/tmp/GLFW-0.5.1.0-4035/GLFW-0.5.1.0/Setup.hs:167:33:</div><div>    Couldn&#39;t match expected type `IO (t0, t1, ExitCode)&#39;</div><div>                with actual type `Maybe (String, Bool)</div><div>



                                  -&gt; Bool -&gt; IO (String, String, ExitCode)&#39;</div><div>    In the return type of a call of `rawSystemStdInOut&#39;</div><div>    Probable cause: `rawSystemStdInOut&#39; is applied to too few arguments</div>



<div>    In a stmt of a &#39;do&#39; block:</div><div>      (out, err, exitCode) &lt;- rawSystemStdInOut</div><div>                                verbosity &quot;cc&quot; ([&quot;-c&quot;, path, &quot;-o&quot;, objPath] ++ flags) Nothing False</div>



<div>    In the expression:</div><div>      do { hClose outHandle;</div><div>           hPutStr inHandle contents;</div><div>           hClose inHandle;</div><div>           (out, err, exitCode) &lt;- rawSystemStdInOut</div>



<div>                                     verbosity &quot;cc&quot; ([&quot;-c&quot;, path, ....] ++ flags) Nothing False;</div><div>           .... }</div><div><br></div><div>/tmp/GLFW-0.5.1.0-4035/GLFW-0.5.1.0/Setup.hs:167:113:</div>



<div>    Couldn&#39;t match expected type `Maybe [(String, String)]&#39;</div><div>                with actual type `Bool&#39;</div><div>    In the fifth argument of `rawSystemStdInOut&#39;, namely `False&#39;</div><div>


    In a stmt of a &#39;do&#39; block:</div>
<div>      (out, err, exitCode) &lt;- rawSystemStdInOut</div><div>                                verbosity &quot;cc&quot; ([&quot;-c&quot;, path, &quot;-o&quot;, objPath] ++ flags) Nothing False</div><div>    In the expression:</div>



<div>      do { hClose outHandle;</div><div>           hPutStr inHandle contents;</div><div>           hClose inHandle;</div><div>           (out, err, exitCode) &lt;- rawSystemStdInOut</div><div>                                     verbosity &quot;cc&quot; ([&quot;-c&quot;, path, ....] ++ flags) Nothing False;</div>



<div>           .... }</div><div>Failed to install GLFW-0.5.1.0</div></div><div><br></div><div><br></div><div>[1] <a href="http://code.haskell.org/GLFW/Setup.hs" target="_blank">http://code.haskell.org/GLFW/Setup.hs</a></div>

<div>[2] <a href="https://github.com/haskell/cabal/blob/d16c307c33fb7af19d8f17a2ad8be4902a3af21e/Cabal/Distribution/Simple/Utils.hs#L454" target="_blank">https://github.com/haskell/cabal/blob/d16c307c33fb7af19d8f17a2ad8be4902a3af21e/Cabal/Distribution/Simple/Utils.hs#L454</a></div>



<div><br></div></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>