Bug 134483 - Fail to build WebKitGTK+ trunk on FreeBSD
Summary: Fail to build WebKitGTK+ trunk on FreeBSD
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Other
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-30 20:53 PDT by Ting-Wei Lan
Modified: 2014-08-15 11:01 PDT (History)
7 users (show)

See Also:


Attachments
Build log of WebKit revision 170584 on FreeBSD (604.18 KB, text/plain)
2014-06-30 20:53 PDT, Ting-Wei Lan
no flags Details
Build log of WebKit revision 170826 on FreeBSD (572.97 KB, text/plain)
2014-07-06 09:17 PDT, Ting-Wei Lan
no flags Details
Build log of WebKit revision 170915 on FreeBSD with GStreamer issue resolved (814.33 KB, text/plain)
2014-07-09 06:42 PDT, Ting-Wei Lan
no flags Details
Build log of WebKit revision 171064 on FreeBSD with GStreamer issue resolved (813.96 KB, text/plain)
2014-07-14 09:40 PDT, Ting-Wei Lan
no flags Details
GStreamer 1.3.90 build fixes for WebKit trunk (3.47 KB, patch)
2014-07-14 10:23 PDT, Ting-Wei Lan
no flags Details | Formatted Diff | Diff
Build fixes for GStreamer >= 1.3.90 (4.65 KB, patch)
2014-07-17 06:47 PDT, Ting-Wei Lan
no flags Details | Formatted Diff | Diff
Disable memory sampler on non-Linux system (1.16 KB, patch)
2014-08-03 02:23 PDT, Ting-Wei Lan
no flags Details | Formatted Diff | Diff
Disable memory sampler on non-Linux system (with ChangeLog) (1.97 KB, patch)
2014-08-14 10:24 PDT, Ting-Wei Lan
pnormand: review+
commit-queue: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ting-Wei Lan 2014-06-30 20:53:26 PDT
Created attachment 234141 [details]
Build log of WebKit revision 170584 on FreeBSD

I tried to build WebKitGTK+ trunk on FreeBSD 10.0-RELEASE with Clang 3.3 in the base system, but there are many errors.
Comment 1 Ting-Wei Lan 2014-07-06 09:17:47 PDT
Created attachment 234462 [details]
Build log of WebKit revision 170826 on FreeBSD
Comment 2 Zan Dobersek 2014-07-06 13:27:03 PDT
The AtomicStringHash errors in the first log have been fixed.

The remaining errors are about GstMpegTsSection and similar API, which has probably been renamed recently to GstMpegts* since you're building with GStreamer 1.3.90 while the Jhbuild environment is providing 1.2.1.
Comment 3 Alberto Garcia 2014-07-07 02:02:41 PDT
(In reply to comment #2)
> The remaining errors are about GstMpegTsSection and similar API,
> which has probably been renamed recently to GstMpegts* since you're
> building with GStreamer 1.3.90 while the Jhbuild environment is
> providing 1.2.1.

Yes, that seems to be the case:

http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=22dfd9aef361c6e630fe32d6b7f6c07588a2dff9

Is that new API stable? Are they not providing any sort of backward
compatibility?
Comment 4 Philippe Normand 2014-07-07 02:09:47 PDT
The API implemented is -bad is unstable, usually. Until it gets moved to -good or -base.
Comment 5 Alberto Garcia 2014-07-07 02:16:10 PDT
(In reply to comment #4)
> The API implemented is -bad is unstable, usually. Until it gets
> moved to -good or -base.

Debian and Ubuntu are currently shipping the 1.2.x branch, should we
try to support both APIs in the WebKitGTK+ side, or just one of them?

I guess that the API might change again before 1.4.0 is released?
Comment 6 Philippe Normand 2014-07-07 02:20:07 PDT
I don't think the API is expected to change at this point, 1.3.90 is a pre-release of 1.4.0. So I think we should fix the build for 1.3.90 and disable this code for GStreamer 1.2.x
Comment 7 Alberto Garcia 2014-07-07 02:28:59 PDT
(In reply to comment #6)
> So I think we should fix the build for 1.3.90 and disable this code for GStreamer 1.2.x

The problem is that there's at least two major distros that are only
shipping 1.2.x at the moment.
Comment 8 Philippe Normand 2014-07-07 05:09:58 PDT
The code is already guarded by USE(GSTREAMER_MPEGTS) and that checks for gstreamer-mpegts >= 1.3 in FindGStreamer.cmake.

So yeah, let's just adapt our code to the 1.3.90 API, ok?
Comment 9 Ting-Wei Lan 2014-07-09 06:42:49 PDT
Created attachment 234631 [details]
Build log of WebKit revision 170915 on FreeBSD with GStreamer issue resolved
Comment 10 Alberto Garcia 2014-07-14 01:33:17 PDT
(In reply to comment #9)
> ../../lib/libWebCoreGTK.a(ViewportStyleResolver.cpp.o): In function `WebCore::ViewportStyleResolver::getViewportArgumentValue(WebCore::CSSPropertyID) const':
> /home/lantw44/gnome/source/webkit-trunk/Source/WebCore/css/ViewportStyleResolver.cpp:(.text+0x3fd): undefined reference to `WebCore::Node::renderStyle() const'

Does the problem disappear if you include NodeRenderStyle.h in ViewportStyleResolver.cpp?
Comment 11 Ting-Wei Lan 2014-07-14 09:38:16 PDT
(In reply to comment #10)
> (In reply to comment #9)
> > ../../lib/libWebCoreGTK.a(ViewportStyleResolver.cpp.o): In function `WebCore::ViewportStyleResolver::getViewportArgumentValue(WebCore::CSSPropertyID) const':
> > /home/lantw44/gnome/source/webkit-trunk/Source/WebCore/css/ViewportStyleResolver.cpp:(.text+0x3fd): undefined reference to `WebCore::Node::renderStyle() const'
> 
> Does the problem disappear if you include NodeRenderStyle.h in ViewportStyleResolver.cpp?

This problem is already resolved in trunk, but there is another problem:

[ 95%] Generating ../../WebKit2-3.0.gir
/usr/bin/ld: cannot find -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
linking of temporary binary failed: Command '['/usr/bin/clang', '-o', '/home/lantw44/gnome/source/webkit-trunk-build/Source/WebKit2/tmp-introspectpnE48g/WebKit2-3.0', '-Wno-deprecated-declarations', '/home/lantw44/gnome/source/webkit-trunk-build/Source/WebKit2/tmp-introspectpnE48g/WebKit2-3.0.o', '-L.', '-Wl,-rpath=.', '-Wl,--no-as-needed', '-lwebkit2gtk-3.0', '-ljavascriptcoregtk-3.0', '-L/home/lantw44/gnome/source/webkit-trunk-build/lib', '-Wl,-rpath=/home/lantw44/gnome/source/webkit-trunk-build/lib', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lgtk-3', '-lgdk-3', '-lpangocairo-1.0', '-lpango-1.0', '-latk-1.0', '-lcairo-gobject', '-lcairo', '-lgdk_pixbuf-2.0', '-lsoup-2.4', '-lgio-2.0', '-lgobject-2.0', '-L/home/lantw44/gnome/devinstall/lib', '-lglib-2.0', '-lintl']' returned non-zero exit status 1
*** Error code 1

libintl is installed in /usr/local/lib, and the LDFLAGS environment variable is set to `-L/home/lantw44/gnome/devinstall/lib -L/usr/local/lib' by jhbuild.
Comment 12 Ting-Wei Lan 2014-07-14 09:40:07 PDT
Created attachment 234859 [details]
Build log of WebKit revision 171064 on FreeBSD with GStreamer issue resolved
Comment 13 Philippe Normand 2014-07-14 09:49:13 PDT
Can you please provide the patch for GStreamer build fixes?
Comment 14 Ting-Wei Lan 2014-07-14 10:23:53 PDT
Created attachment 234863 [details]
GStreamer 1.3.90 build fixes for WebKit trunk
Comment 15 Philippe Normand 2014-07-15 02:10:29 PDT
Comment on attachment 234863 [details]
GStreamer 1.3.90 build fixes for WebKit trunk

Thanks! Would you mind providing a ChangeLog entry? This page is quite helpful for new contributors http://www.webkit.org/coding/contributing.html
Comment 16 Ting-Wei Lan 2014-07-15 06:17:56 PDT
(In reply to comment #15)
> (From update of attachment 234863 [details])
> Thanks! Would you mind providing a ChangeLog entry? This page is quite helpful for new contributors http://www.webkit.org/coding/contributing.html

Do we have to keep compatibility with older version of GStreamer?
Comment 17 Philippe Normand 2014-07-15 06:55:50 PDT
(In reply to comment #16)
> (In reply to comment #15)
> > (From update of attachment 234863 [details] [details])
> > Thanks! Would you mind providing a ChangeLog entry? This page is quite helpful for new contributors http://www.webkit.org/coding/contributing.html
> 
> Do we have to keep compatibility with older version of GStreamer?

Not in this case, that code is enabled only if gstreamer-mpegts >= 1.4.0 is found. See the cmake file mentioned in the comments above.
Comment 18 Philippe Normand 2014-07-15 06:57:01 PDT
I mention in comment 8 that 1.3 is checked, we'd need 1.4 there, :)
Comment 19 Ting-Wei Lan 2014-07-17 06:47:05 PDT
Created attachment 235066 [details]
Build fixes for GStreamer >= 1.3.90
Comment 20 Adrian Perez 2014-07-21 22:54:16 PDT
(In reply to comment #19)
> Created an attachment (id=235066) [details]
> Build fixes for GStreamer >= 1.3.90

For this we have a patch that conditionally typedefs the GstMpegTs* types
(see bug #135114). I think that approach is better because it will allow
to keep using the previous GStreamer version, which can be important for
downstream projects using WebKit{GTK,EFL}.
Comment 21 Ting-Wei Lan 2014-08-03 02:17:49 PDT
I uses LDFLAGS="-Wl,-Y/usr/local/lib" to specify the location of libintl, but LDFLAGS is unset in Source/WebKit2/PlatformGTK.cmake when running g-ir-scanner.

Therefore, I gets this error:
/usr/bin/ld: cannot find -lintl

Is there any reason to ignore LDFLAGS set by the user?
Comment 22 Ting-Wei Lan 2014-08-03 02:23:34 PDT
Created attachment 235943 [details]
Disable memory sampler on non-Linux system

It seems Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp only works on Linux because it uses many Linux-specific features, so we should disable memory sampler on other systems by default.
Comment 23 Philippe Normand 2014-08-14 08:53:16 PDT
Comment on attachment 235943 [details]
Disable memory sampler on non-Linux system

Looks good but would you mind providing a ChangeLog? The full procedure for code contributions is described there: http://www.webkit.org/coding/contributing.html
Comment 24 Ting-Wei Lan 2014-08-14 10:24:10 PDT
Created attachment 236600 [details]
 Disable memory sampler on non-Linux system (with ChangeLog)
Comment 25 Carlos Garcia Campos 2014-08-15 04:30:39 PDT
Committed r172623: <http://trac.webkit.org/changeset/172623>
Comment 26 Ting-Wei Lan 2014-08-15 09:55:57 PDT
The LDFLAGS problem has not been solved ...
Comment 27 WebKit Commit Bot 2014-08-15 09:57:14 PDT
Comment on attachment 236600 [details]
 Disable memory sampler on non-Linux system (with ChangeLog)

Rejecting attachment 236600 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-01', 'apply-attachment', '--no-update', '--non-interactive', 236600, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 2 diffs from patch file(s).
patching file ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/cmake/OptionsGTK.cmake
Hunk #1 succeeded at 102 with fuzz 1 (offset 6 lines).
Hunk #2 FAILED at 139.
1 out of 2 hunks FAILED -- saving rejects to file Source/cmake/OptionsGTK.cmake.rej

Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Philippe Normand']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5198761936551936
Comment 28 Philippe Normand 2014-08-15 11:01:14 PDT
Please open a new bug or clone this one. We usually deal with one patch per bug.