[[PageOutline]] = Building the GTK+ port = The GTK+ port of WebKit is intended to provide a browser component primarily for users of the portable [http://www.gtk.org/ Gtk+] UI toolkit on platforms like Linux. == Status of the port == The port is actively maintained, and its build state is continuously tested by the [http://build.webkit.org/ WebKit build-bot]. Developers interested in using or contributing to the GTK+ port should be willing to get their hands dirty at this stage. Patches are welcomed on the bug tracker and help is readily available on the IRC channel and mailing list for developers who want to learn the ropes. It is worth noting that this project is being developed directly in WebKit SVN and is entirely unrelated to the classic [http://gtk-webcore.sourceforge.net/ Gtk+ WebCore]. == Distributions == The WebKit/GTK+ API isn't stable and little thought has yet been given to packaging issues, so distributions should package this with caution as a kind of "preview" rather than a stable platform library. === Debian === Debian Unstable provides experimental WebKit/GTK+ packages by Mike Hommey. Debian has organised a packaging team for WebKit: * [http://lists.alioth.debian.org/mailman/listinfo/pkg-webkit-maintainers pkg-webkit-maintainers]: General WebKit packaging discussion * [http://lists.alioth.debian.org/mailman/listinfo/pkg-webkit-commits pkg-webkit-commits]: Commits list === Gentoo === Gentoo is working on an ebuild: http://bugs.gentoo.org/show_bug.cgi?id=190347. To use the WebKit overlay you need to emerge '''layman''' and add the overlay: {{{ emerge -va layman echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf layman -f -a sunrise }}} The GTK+ port of WebKit is named '''webkitgtk'''. I would invite you to look at the USE flags of the ebuild. You can now emerge it normally: {{{ emerge -va webkitgtk }}} You can then regularly update to the latest reviewed revision, which usually belongs to a new nightly build: {{{ layman -s sunrise emerge -u webkitgtk }}} === Lunar-Linux === Lunar provides an experimental/development module for WebKit/GTK+. It can be found in the moonbase in the experimental (zbeta) section under the name 'WebKit.' === Mac OS X === The code on Mac OS X should built like any Linux distribution but there are some packages you need to install (in addition to an "ordinary build environment" that includes XCode Tools 2.3 or newer): * [http://ftp.gnome.org/pub/gnome/sources/atk/1.21/ ATK] * [http://cairographics.org/download/ Cairo] * [http://curl.haxx.se/download.html cURL] * [http://fontconfig.org/release/ fontconfig] * [http://sourceforge.net/project/showfiles.php?group_id=3157 freetype2] * [ftp://anonymous@mirrors.kernel.org:21/gnu/gettext gettext] * [http://www.gtk.org/download-linux.html gtk+] * [http://www.ijg.org/files/jpegsrc.v6b.tar.gz libjpeg] * [http://www.libpng.org/pub/png/libpng.html libpng] * [http://dl.maptools.org/dl/libtiff/ libtiff] * [ftp://anonymous@ftp.gnome.org:21/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.27.tar.gz libxml2] * [ftp://anonymous@ftp.gnome.org:21/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.22.tar.gz libxslt] * [http://ftp.gnome.org/pub/GNOME/sources/pango/1.19/ pango] * [http://www.sqlite.org/download.html SQLite] == Dependencies == The code should be easily built on any Linux distribution which has development packages for GTK+ installed. Packages you might need to install (in addition to an "ordinary build environment"): * libicu-dev * libxslt-dev * libcurl-dev * libsqlite3-dev * libjpeg62-dev * libpng12-dev * gperf * bison * flex version 2.5.33 or later == Using autotools == The GTK+ port can now be built using autotools (autoconf, automake, libtool). To build the GTK+ port just issue the following commands: {{{ $ ./autogen.sh --prefix=/path/to/install/directory $ make }}} This will build a demo browser that uses the GTK+ port in the `Programs/` directory which you can run using the following command: {{{ $ ./Programs/GtkLauncher }}} To install the WebKit GTK+ library, simply issue {{{ $ make install }}} The `configure` script also supports the different features WebKit/GTK+ provide (e.g., SVG filters and animation features, HTML5 Video element support, etc..). Simply issuing {{{ $ ./configure --help }}} on the command-line should give you a brief overview of what can be configured. Although you can build with these features enabled, it doesn't mean that the functionality is complete, let alone working properly. Feel free to submit a bug at http://bugs.webkit.org if you find something that is not working. == Using qmake == It's still possible to use the legacy build system following the [wiki:BuildingGtkUsingQMake GTK+/qmake build instructions]. This system will be phased out soon for the GTK+ port, but is actively maintained at time of writing. = Further links = * [ApplicationsGtk Applications using this Gtk port] * [wiki:"HackingGtk" the hacker's guide to WebKit/GTK+].