<div dir="ltr">Thanks Dave, the multi backend seems like the best approach to me.<div><br></div><div>For what I&#39;ve seen, the difference between building for gtk3 doesn&#39;t require gtk2 while by default, the X11 targeted webkit2-gtk brings in gtk2.</div><div><br></div><div>I&#39;m not sure it&#39;s a WebKit issue because like I&#39;ve said building for gtk3 +quartz works without problems, it looks like something is missing/wrong on the default build.</div><div>However, I will try Epiphany and see how it goes (btw, my primary, default, platform is GNOME on ArchLinux so I&#39;m sure Web there is OK and everything I write is tested there first)</div><div><br></div><div>I have an old mac mini I use for testing/developing purposes only, it&#39;s intel on El Captain so if it&#39;s needed to build or test or verify anything just ping me and I&#39;ll have no problems letting it work. It&#39;s just a bit slow so last time it built WebKit took around 3 days doing only that.</div><div><br></div><div>Best Regards</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 5, 2016 at 12:10 AM, David Evans <span dir="ltr">&lt;<a href="mailto:devans@macports.org" target="_blank">devans@macports.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 4/4/16 1:21 AM, Andrea Giammarchi wrote:<br>
&gt; Some sort of followup from mozjs24 thread, strictly related to WebKit2 GTK3.<br>
&gt;<br>
&gt; The default, XQuartz based version, seems to have some issue with SSL / HTTPS sites.<br>
&gt;<br>
&gt; If you use this file as example:<br>
&gt; <a href="https://github.com/WebReflection/jsgtk/blob/master/examples/browser.gjs" rel="noreferrer" target="_blank">https://github.com/WebReflection/jsgtk/blob/master/examples/browser.gjs</a><br>
&gt;<br>
&gt; you&#39;ll notice a `broken pipe` error everytime you try to reload `<a href="https://www.google.com/`" rel="noreferrer" target="_blank">https://www.google.com/`</a> or any other https site.<br>
&gt; However, if you try any non htps site, it will show it without problems.<br>
&gt;<br>
&gt; Working example:<br>
&gt; `gjs browser.gjs <a href="http://archibold.io/`" rel="noreferrer" target="_blank">http://archibold.io/`</a><br>
&gt;<br>
</span>&gt; Omit the site to try <a href="http://google.com" rel="noreferrer" target="_blank">google.com</a> &lt;<a href="http://google.com" rel="noreferrer" target="_blank">http://google.com</a>&gt; and its default redirect to https that will break.<br>
<span class="">&gt;<br>
&gt; I&#39;m not sure there&#39;s a missing dependency or something, all I know is that using the `+quartz` based version doesn&#39;t<br>
&gt; have any issue (or at least, not this one).<br>
<br>
</span>Have you tried epiphany as your browser?  I haven&#39;t tried it for the examples that you mention but it uses WebKit2 via<br>
X11 as well (but not js).  If the issues that you mention persist they should be reported upstream to the Webkit developers.<br>
<span class=""><br>
&gt;<br>
&gt; However, I&#39;ve also realized using `-x11 +no_x11 +quartz +gtk3` variants means that **a lot of stuff needs to be built**,<br>
&gt; but I find the quartz based version of GTK3 faster, in terms of bootstrap time, good and same looking of XQuartz,<br>
&gt; through the adwaita icon theme, and also a more consistent experience compared with the one offered by Homebrew.<br>
<br>
</span>You&#39;re using too many variants and causing some extra rebuilds.  You really only need to use gtk3 +quartz to build the<br>
quartz version.<br>
<br>
Specifically:<br>
<br>
   +no_x11: this is an old usage that has been largely if not if not completely removed from usage in MacPorts.  Not<br>
required for gtk3 or its dependents. Or anyone, I think.<br>
<br>
   -x11: this is not needed either since gtk3&#39;s dependents that care (cairo, pango) have, for some time, built with both<br>
+x11+quartz by default.  That is, with both backends enabled.  So the default build is usable with either gtk3 +quartz<br>
or gtk3 +x11.  If you use -x11 you will force a non-default build of cairo +quartz, pango +quartz only.<br>
<br>
   +gtk3: this variant is only used by a very small set of ports (gtk3 and its dependents are not included).  Typically<br>
these are gtk2 apps that are in the process of porting to gtk3 but consider the gtk3 version experimental.  A good<br>
example is inkscape.  At any rate, I only count 14 ports that use it as this point.  You can use<br>
<br>
port echo variants:gtk3<br>
<br>
to see the list.<br>
<span class=""><br>
&gt;<br>
&gt; As summary, and for the sake of GTK3 users:<br>
&gt;<br>
</span>&gt;  1. wouldn&#39;t be better if MacPorts GTK3 was using by default quartz instead of XQuartz backend? This would solve the<br>
<span class="">&gt;     problem with not having XQuartz installed<br>
<br>
</span>The point of MacPorts is to port open source software to Mac OS X that is usually targeted by default at UNIX/Linux<br>
plaforms.  This largely means X11 (or maybe wayland).  Ports that only support Quartz build natively and so don&#39;t need<br>
X11 nor support X11.  At this point, some of the (originally X11) ports will build using quartz but many will not.  Thus<br>
X11 is still the primary display mode for most ports. As has been mentioned elsewhere, GTK+ 3 quartz support is not up<br>
to par with X11 at this point. More involvement by Mac enthusiasts in GTK+ upstream development could help the issue here.<br>
<br>
&gt;  2. wouldn&#39;t be better macports experience if quartz backend was also pre-built like it is for the xquartz one?<br>
<span class="">&gt;     Installation time is 10x slower than the Homebrew one<br>
<br>
</span>This could probably be done, but would require more buildbot resources than we currently have allocated.  Ryan, our<br>
sysadmin for these issues, could address what it would take to do this.  Note that once you have built both gtk3 +x11<br>
and gtk3 +quartz you can switch from one to the other by deactivating one and activating the other.  This is a matter of<br>
replacing one binary image with another so no compiling is involved and should save you a lot of time if you&#39;re not<br>
using it currently.<br>
<br>
However, there is another way.  gtk3 has for some time supported the concept of building with multiple backends<br>
simultaneously (as cairo and pango do).  So we could look at having a single gtk3 +quartz+x11 default build.  I&#39;m<br>
looking at what the consequences of this would be on gtk3&#39;s dependent ports as a background task at this point, but it<br>
should be doable.  Unfortunately gtk2 does not support this ability and probably never will.<br>
<span class="">&gt;<br>
&gt; Last, but not least, is there a way to specify quartz variants at runtime, instead of modifying the<br>
&gt; `/opt/local/etc/macports/variants.conf` file ?<br>
<br>
</span>No, because, in general, the differences are resolved at build time using different code paths for each type.  This is<br>
not a MacPorts issue but an issue for the upstream developers of a given app.<br>
<br>
Hope this clears up a few issues.<br>
<br>
Dave Evans, gtk3 maintainer<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div>