1. Building WebKit on Linux - WebKit porting to Mona OS

To see what's happening on build process, just tried to build WebKit on my Ubuntu laptop.
At first I've tried to build GTK+ WebKit, but it requires GLIB - version >= 2.27.90. My Ubuntu uses glib 2.0.0, and it seems dangerous to upgrade glib to the latest version.
So gave up GTK+ Webkit, tried QT WebKit instead.

% sudo apt-get install libqt4-dev libxslt-dev gperf bison libsqlite3-dev flex build-essential subversion
% (QTDIR=/usr/share/qt4/ Tools/Scripts/build-webkit --qt) 2>&1 | tee build.log

After about an hour of compilation, following errors were shown.

../../../Source/WebCore/platform/graphics/qt/FontQt.cpp:195: error: ‘TextBypassShaping’ is not a member of ‘Qt’
../../../Source/WebCore/platform/graphics/qt/FontQt.cpp:204: error: ‘TextBypassShaping’ is not a member of ‘Qt’
../../../Source/WebCore/platform/graphics/qt/FontQt.cpp:221: error: no matching function for call to ‘QFontMetrics::width(QString&, int, int&)

BuildingQtOnLinux – WebKit says.

Note: Some ubuntu distributions does not install qt 4.7.0 with the above command.
So you have to install it separately from qt.nokia.com or 
add "deb  http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu lucid main" to
apt sources file /etc/apt/sources.list and do apt-get update and then install libqt4-dev package

After installed new libqt4, make clean && build-webkit --qt.
The next problem was "no space left" on compilation. The size and number of files were much more than I expected. It used at least 2GB disk.
Removed unused files and restart building.


On the link phase of JavaScriptCore, the ld linker was killed because of high usage of memory.
So I did two things.

  • installed gold linker (sudo apt-get install binutils-gold)
  • disabled svg support (QTDIR=/usr/share/qt4/ Tools/Scripts/build-webkit --qt --no-svg).


gold linker caused some link error, so I uninstalled it.
Finally successfully completed building process.

Run the launcher.

%  Tools/Scripts/run-launcher --qt


Summary

To build WebKit on Ubuntu following things were required.

  • Don't use GTK+
  • Don't use gold
  • Install latest Qt
  • Disable SVG suport
  • Enough disk space