<div dir="ltr"><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Eric Bélanger</b> <span dir="ltr">&lt;<a href="mailto:snowmaniscool@gmail.com">snowmaniscool@gmail.com</a>&gt;</span><br>
Date: Sat, May 11, 2013 at 7:05 PM<br>Subject: Re: [racket] Racket 5.3.4 doesn&#39;t build aginst libpng 1.6<br>To: Matthew Flatt &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;<br><br><br><div dir="ltr">
<br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Sat, May 11, 2013 at 11:32 AM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The `racket/gui&#39; library looks for &quot;libpng15&quot;, &quot;libpng12&quot;, and just<br>
&quot;libpng&quot;, in that order.<br>
<br>
So, maybe it should also look for &quot;libpng16&quot;, which I&#39;m guessing is<br>
the name of the libpng 1.6.2 library?<br>
<br>
You can try adjusting<br>
<br>
 collects/racket/draw/unsafe/png.rkt<br>
<br>
to see if it works with &quot;libpng16&quot;, or you could link &quot;libpng.so&quot; in<br>
the Racket &quot;lib&quot; directory to libpng16.so&quot;.<br>
<div><div><br></div></div></blockquote><div><br></div></div><div>I already tried patching png.rkt but it didn&#39;t work:<br><br></div><div>--- collects/racket/draw/unsafe/png.rkt.orig    2013-05-10 06:14:53.974556522 -0400<br>

+++ collects/racket/draw/unsafe/png.rkt 2013-05-10 06:15:32.214215573 -0400<br>@@ -10,9 +10,9 @@<br>   [(unix)<br>    ;; Most Linux distros supply &quot;libpng12&quot;, while other Unix<br>    ;; variants often have just &quot;libpng&quot;, etc.<br>

-   (ffi-lib &quot;libpng15&quot; &#39;(&quot;15&quot; &quot;&quot;)<br>+   (ffi-lib &quot;libpng16&quot; &#39;(&quot;16&quot; &quot;&quot;)<br>            #:fail (lambda ()<br>-                    (ffi-lib &quot;libpng12&quot; &#39;(&quot;0&quot; &quot;&quot;)<br>

+                    (ffi-lib &quot;libpng16&quot; &#39;(&quot;0&quot; &quot;&quot;)<br>                              #:fail (lambda ()<br>                                       (ffi-lib &quot;libpng&quot;)))))]<br>   [(macosx) (ffi-lib &quot;libpng15.15.dylib&quot;)]<br>

<br></div><div>I also have a /usr/lib/libpng.so symlinks to libpng16.so on my system that is provided by the libpng package. I have a feeling that the problem here is that racket is not compatible with an API/ABI change in libpng 1.6.<br>

</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>
At Fri, 10 May 2013 18:23:01 -0400, Eric Bélanger wrote:<br>
&gt; I&#39;m trying to build racket 5.3.4 but I&#39;m getting many similar errors:<br>
&gt; png_structp-&gt;C: argument is not non-null `png_structp&#39; pointer<br>
&gt;   argument: #f<br>
&gt;<br>
&gt; I found out that this only happens with libpng 1.6.2. It builds fine if I<br>
&gt; use libpng 1.5.15.<br>
&gt;<br>
&gt; Does anyone have a fix?<br>
&gt;<br>
&gt; Thanks.<br>
</div></div>&gt; ____________________<br>
&gt;   Racket Users list:<br>
&gt;   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div></div><br></div></div>
</div><br></div>