[webkit-gtk] Building 2.4.9 on OS X

Erik Allik eallik at gmail.com
Sun Dec 13 06:14:09 PST 2015


I'm afraid the FFTFrame changes were right (or at least needed) after all;
without that patch, I got:

   Source/WebCore/platform/audio/gstreamer/FFTFrameGStreamer.cpp:46:38:
error: use of undeclared identifier 'GstFFTF32Complex'
       ,
m_complexData(std::make_unique<GstFFTF32Complex[]>(unpackedFFTDataSize(m_FFTSize)))
                                        ^

however, your comment on gstreamermm not being required, was indeed correct
— I instead needed to depend_on gst-plugins-base.

-----

All in all, the Homebrew formula finally builds successfully, and there is
now an open pull request for adding the webkitgtk-2.4.9 formula in
homebrew/versions <https://github.com/Homebrew/homebrew-versions>, if
anyone is interested.

Homebrew/homebrew-versions#1077
<https://github.com/Homebrew/homebrew-versions/pull/1077>

It compiles functionally equivalently to the MacPorts port it was based on
<https://svn.macports.org/repository/macports/trunk/dports/www/webkit-gtk/Portfile>
.

I would also love it if anyone more deeply involved with how webkitgtk works,
to take a look at the formula
<https://github.com/eallik/homebrew-versions/commit/2cb7318b60ca5c7d067a2081fc59c95d03c517e0>
and
perhaps offer some constructive criticism in the form of GitHub commit
review, or even new commits!

Erik


On Wed, Dec 9, 2015 at 1:24 PM Philippe Normand <philn at igalia.com> wrote:

> I haven’t checked the formula thoroughly but I can already report that:
>
> - there is no need to depend on gstreamermm to enable video/webaudio
> support because WebKit doesn’t rely on gstreamermm but directly depends on
> streamer (C API) for these features
> - the FFTFrame changes are wrong
>
> I suggest you to either try a recent snapshot of current SVN trunk or to
> wait the next unstable release because quite a few patches improving (I
> hope) the OSX build situation have recently landed in SVN trunk.
>
> Philippe
>
> On 09 Dec 2015, at 12:13, Erik Allik <eallik at gmail.com> wrote:
>
> Hi!
>
> I recently stumbled upon the need to build webkitgtk-2.4.9 on OS X (as
> that is the last version with which the Cabal package webkitgtk3 seems to
> build with). There was only 2.10.4 in Homebrew, however there was a working
> 2.4.9 in MacPorts. The MacPorts version however uses a version of iconv
> which prevents me from compiling Homebrew stuff against the that
> webkitgtk-2.4.9, so I ended up developing a Homebrew webkitgtk-2.4.9
> formula.
>
> I've gotten past most obstacles; I'm applying all but one (seemingly
> irrelevant) patch from the port, and using the same or almost the same
> flags for configuring and building, but I'm not entirely sure everything's
> as it's supposed to be. In any case, when calling `make install` or `make
> V=1` (the macport seems to call `gmake V=1`, but the `make` on my system
> already seems to be GNU's), after quite a bit of waiting I get:
>
> ==> Downloading http://webkitgtk.org/releases/webkitgtk-2.4.9.tar.xz
> Already downloaded: /Library/Caches/Homebrew/webkitgtk249-2.4.9.tar.xz
> ==> Patching
> patching file Source/WebCore/platform/text/TextCodecUTF8.h
> patching file Source/WTF/wtf/Assertions.h
> patching file Source/WebCore/platform/audio/FFTFrame.h
> patching file Source/WTF/wtf/FastMalloc.cpp
> patching file Source/WTF/wtf/Platform.h
> patching file Source/JavaScriptCore/GNUmakefile.am
> patching file Source/autotools/FindDependencies.m4
> Hunk #1 succeeded at 104 with fuzz 2 (offset -4 lines).
> patching file Source/WebCore/plugins/PluginView.cpp
> patching file Source/WebCore/plugins/PluginView.h
> patching file Source/WebCore/GNUmakefile.list.am
> <http://gnumakefile.list.am/>
> patching file Source/JavaScriptCore/API/JSBasePrivate.h
> patching file Source/JavaScriptCore/API/JSContextRef.h
> patching file Source/JavaScriptCore/API/JSContextRefPrivate.h
> patching file Source/JavaScriptCore/API/JSObjectRef.h
> patching file Source/JavaScriptCore/API/JSValueRef.h
> patching file Source/JavaScriptCore/offlineasm/offsets.rb
> Hunk #1 succeeded at 108 with fuzz 1 (offset -1 lines).
> -ftemplate-depth=256
> -ftemplate-depth=256 -Wno-c++11-extensions
> ==> ./configure --enable-dependency-tracking --disable-webkit2
> --enable-svg --disable-geolocation --disable-jit --enable-x11-target=no
> --enable-quartz-target=yes --enable-wayland-target=no
> --enable-introspection --prefix=/usr/local/Cellar/webkitgtk249/2.4.9
> --disable-webgl --disable-web-audio --disable-video
> ==> make V=1
> Last 15 lines from /Users/erik/Library/Logs/Homebrew/webkitgtk249/02.make:
> Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:103:44:
> error: cannot initialize a parameter of type 'WebCore::GraphicsLayerClient
> *' with an rvalue of type 'WebKit::AcceleratedCompositingContext *'
>     m_rootLayer = GraphicsLayer::create(0, this);
>                                            ^~~~
> ./Source/WebCore/platform/graphics/GraphicsLayer.h:231:93: note: passing
> argument to parameter here
>     static std::unique_ptr<GraphicsLayer> create(GraphicsLayerFactory*,
> GraphicsLayerClient*);
>
>                   ^
> Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:108:60:
> error: cannot initialize a parameter of type 'WebCore::GraphicsLayerClient
> *' with an rvalue of type 'WebKit::AcceleratedCompositingContext *'
>     m_nonCompositedContentLayer = GraphicsLayer::create(0, this);
>                                                            ^~~~
> ./Source/WebCore/platform/graphics/GraphicsLayer.h:231:93: note: passing
> argument to parameter here
>     static std::unique_ptr<GraphicsLayer> create(GraphicsLayerFactory*,
> GraphicsLayerClient*);
>
>                   ^
> 4 errors generated.
> make[1]: ***
> [Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-AcceleratedCompositingContextGL.lo]
> Error 1
> make: *** [all] Error 2
>
> If there's anyone on this mailing list that could potentially help me
> diagnose and solve the issue, that would be really appreciated!
>
> The Homebrew formula I'm developing can be seen here; the code should be
> self-explanatory:
> * http://lpaste.net/8783617611091935232
>
> The MacPorts port I'm basing off of is here; the Tcl code is slightly hard
> to read for anyone not used to Tcl (incl. myself) but it should give an
> idea of a successful compilation of webkitgtk-2.4.9 can be achieved on OS X:
> *
> https://svn.macports.org/repository/macports/trunk/dports/www/webkit-gtk/Portfile
>
> — I'm really not seeing what I'm missing; there must be something in the
> Portfile that is causing the compilation to succeed there, and not in my
> formula, but it's not something obvious to me.
>
> Best regards,
> Erik Allik
>
> _______________________________________________
> webkit-gtk mailing list
> webkit-gtk at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-gtk
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20151213/8c52b015/attachment-0001.html>


More information about the webkit-gtk mailing list