Changes between Initial Version and Version 1 of WebKitGTK


Ignore:
Timestamp:
Jul 14, 2010 11:06:06 AM (11 years ago)
Author:
Martin Robinson
Comment:

Migrate this page from BuldingGtk

Legend:

Unmodified
Added
Removed
Modified
  • WebKitGTK

    v1 v1  
     1[[PageOutline]]
     2
     3= WebKitGTK+ =
     4
     5The GTK+ port of WebKit is intended to provide a browser component for the portable [http://www.gtk.org/ Gtk+] UI toolkit. WebKitGTK+ is developed within the official WebKit SVN, so the codebase is unrelated to the classic [http://gtk-webcore.sourceforge.net/ Gtk+ WebCore], but WebKit GKT+ has superseded Gtk+ WebCore. The [http://build.webkit.org/ WebKit Buildbot] provides continuous build and layouts tests. A [wiki:StableGTK semi-stable] branch exists to evaluate how to handle issues such as stability, and security support.
     6
     7Developers interested in using or contributing to the GTK+ port should be willing to get their hands dirty at this stage. Patches are welcome on the [http://bugs.webkit.org/ bug tracker] and help is readily available at #webkit-gtk on irc.freenode.net and the [http://lists.webkit.org/mailman/listinfo.cgi/webkit-gtk mailing list] for developers who want to learn the ropes.
     8
     9== Distributions ==
     10
     11The WebKit/GTK+ API follows a stable additions-only policy. The core engine is continually being stabilised and is suitable for most embedding tasks. Distributors should get in touch with the upstream maintainers to be sure they're packaging the correct version.
     12
     13We adopt a versioning scheme similar to GTK+'s. This means that, having a version x.y.z, when y is odd, it's a development version. API is still not stable, and may change. When y is an even number, we are in a stable release, which gets only fixes, and small improvements, while keeping API compatibility. When API bits are deprecated for a full release cycle, we drop them.
     14
     15=== Debian ===
     16
     17Debian Unstable provides experimental WebKit/GTK+ packages by Mike Hommey.
     18
     19 Debian has organised a packaging team for WebKit:
     20
     21 * [http://lists.alioth.debian.org/mailman/listinfo/pkg-webkit-maintainers pkg-webkit-maintainers]: General WebKit packaging discussion
     22 * [http://lists.alioth.debian.org/mailman/listinfo/pkg-webkit-commits pkg-webkit-commits]: Commits list
     23
     24=== Gentoo ===
     25
     26Gentoo have an ebuild for WebkitGTK in testing: http://bugs.gentoo.org/show_bug.cgi?id=190347.
     27You will have to add the testing keyword to your '/etc/portage/package.keywords' file in order to install the package.
     28{{{
     29# echo 'net-libs/webkit-gtk ~arch' >> /etc/portage/package.keywords
     30}}}
     31Please remember to change ~arch to the architecture you're using (~x86, ~amd64).
     32The GTK+ port of WebKit is named '''webkit-gtk'''. I would invite you to look at the USE flags of the ebuild and add it
     33to the packages.use file depending of your preferences.
     34You can now emerge it normally:
     35{{{
     36# emerge -va webkit-gtk
     37}}}
     38You can then regularly update to the latest reviewed revision, which usually belongs to a new nightly build:
     39{{{
     40# emerge -u webkit-gtk
     41}}}
     42
     43=== Lunar-Linux ===
     44
     45Lunar provides an experimental/development module for WebKit/GTK+.  It can be found in the moonbase in the experimental (zbeta) section under the name 'WebKit.'
     46
     47=== Mac OS X ===
     48
     49The code on Mac OS X should built like any Linux distribution, as long as you install the build dependencies (in addition to an "ordinary build environment" that includes XCode Tools 2.3 or newer). See bellow.
     50
     51== Dependencies ==
     52
     53The code should be easily built on any Linux distribution which has development packages for GTK+ installed. Bellow is a list of Debian package names you will need to install. Although the names of the packages are probably different in non-Debian-based distributions, it should be fairly easy to find the alternative names. Notice that this list may get outdated:
     54
     55 * autoconf
     56 * automake
     57 * libtool
     58 * libgtk2.0-dev (>= 2.10)
     59 * libpango1.0-dev (>= 1.16)
     60 * libicu-dev
     61 * libxslt-dev
     62 * libsoup2.4-dev (>= 2.27.4) (*)
     63 * libsqlite3-dev
     64 * gperf
     65 * bison (>= 2.4.1)
     66 * flex
     67 * libjpeg62-dev
     68 * libpng12-dev
     69 * libxt-dev
     70 * autotools-dev
     71 * libgstreamer-plugins-base0.10-dev
     72 * libenchant-dev
     73 * libgail-dev
     74 * libgeoclue-dev
     75 * gtk-doc-tools
     76
     77(*) As of [http://trac.webkit.org/changeset/52208 change-set 52208] libsoup version 2.28.2 or greater is required.[[BR]]
     78
     79(*) [http://ftp.gnome.org/pub/GNOME/sources/libsoup/2.29/ Libsoup 2.29.3 tar ball] release is missing '''libsoup/soup-content-decoder.h'''.  SOUP_TYPE_CONTENT_DECODER is defined in the header file and it will result in a compilation error: '''WebKit/gtk/webkit/webkitprivate.cpp:290: error: 'SOUP_TYPE_CONTENT_DECODER' was not declared in this scope'''.  [http://ftp.gnome.org/pub/GNOME/sources/libsoup/2.28/ libsoup 2.28.2] works.
     80
     81== Build and Install ==
     82
     83The GTK+ port can now be built using autotools (autoconf, automake, libtool). To build the GTK+ port just issue the following commands:
     84
     85{{{
     86$ ./autogen.sh --prefix=/path/to/install/directory
     87$ make
     88}}}
     89
     90This will build a demo browser that uses the GTK+ port in the `Programs/` directory which you can run using the following command:
     91
     92{{{
     93$ ./Programs/GtkLauncher
     94}}}
     95
     96To install the WebKit GTK+ library, simply issue
     97
     98
     99{{{
     100$ make install
     101}}}
     102
     103The `configure` script also supports the different features WebKit/GTK+ provide (e.g., SVG filters and animation features, HTML5 Video element support, etc..). Simply issuing
     104
     105{{{
     106$ ./configure --help
     107}}}
     108
     109on 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.
     110
     111= Further links =
     112
     113 * [ApplicationsGtk Applications using this Gtk port]
     114 * [wiki:"HackingGtk" the hacker's guide to WebKit/GTK+].