Changes between Version 39 and Version 40 of BuildingGtk


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

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildingGtk

    v39 v40  
    11[[PageOutline]]
    22
    3 = WebKitGTK+ =
     3= Building WebKitGTK+ =
    44
    5 The 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.
     5== Dependencies ==
    66
    7 Developers 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 
    11 The 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 
    13 We 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 
    17 Debian 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 
    26 Gentoo have an ebuild for WebkitGTK in testing: http://bugs.gentoo.org/show_bug.cgi?id=190347.
    27 You 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 }}}
    31 Please remember to change ~arch to the architecture you're using (~x86, ~amd64).
    32 The GTK+ port of WebKit is named '''webkit-gtk'''. I would invite you to look at the USE flags of the ebuild and add it
    33 to the packages.use file depending of your preferences.
    34 You can now emerge it normally:
    35 {{{
    36 # emerge -va webkit-gtk
    37 }}}
    38 You 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 
    45 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.'
    46 
    47 === Mac OS X ===
    48 
    49 The 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 
    53 The 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:
     7Following is a list of Debian packages necessary for building WebKitGTK+. Although the names of the packages are probably different in non-Debian-based distributions, it should be fairly easy to find the alternative names. This list should be kept up to date.
    548
    559 * autoconf
    5610 * 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
     11 * autotools-dev
    6512 * bison (>= 2.4.1)
    6613 * flex
     14 * gperf
     15 * gtk-doc-tools
     16 * libenchant-dev
     17 * libgail-dev (>= 1.8)
     18 * libgeoclue-dev
     19 * libglib2.0-dev (>= 2.21.3)
     20 * libgstreamer-plugins-base0.10-dev
     21 * libgtk2.0-dev (>= 2.10)
     22 * libicu-dev
    6723 * libjpeg62-dev
     24 * libpango1.0-dev (>= 1.16)
    6825 * libpng12-dev
     26 * libsoup2.4-dev (>= 2.28.2)
     27 * libsqlite3-dev
     28 * libtool
     29 * libxslt-dev
    6930 * libxt-dev
    70  * autotools-dev
    71  * libgstreamer-plugins-base0.10-dev
    72  * libenchant-dev
    73  * libgail-dev
    74  * libgeoclue-dev
    75  * gtk-doc-tools
    7631
    77 (*) As of [http://trac.webkit.org/changeset/52208 change-set 52208] libsoup version 2.28.2 or greater is required.[[BR]]
     32== Getting the source ==
    7833
    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.
     34To get the WebKitGTK+ source, please follow the instructions on the [http://webkit.org/building/checkout.html WebKit page]. Many WebKit developer also use git to interact with the repository and many of the developer tools have strong support for git. [http://trac.webkit.org/wiki/UsingGitWithWebKit] contains many tips for using git with WebKit.
    8035
    81 == Build and Install ==
     36== Launching the build ==
    8237
    83 The GTK+ port can now be built using autotools (autoconf, automake, libtool). To build the GTK+ port just issue the following commands:
     38Once you have successfully checked the source out of the repository, simply run:
    8439
    8540{{{
    86 $ ./autogen.sh --prefix=/path/to/install/directory
    87 $ make
     41$ WebKitTools/Scripts/build-webkit --gtk
    8842}}}
    8943
    90 This will build a demo browser that uses the GTK+ port in the `Programs/` directory which you can run using the following command:
     44This will build WebKit in the directory WebKitBuild/Release. Once the build finishes, you can run a simple demo browser by executing:
    9145
    9246{{{
    93 $ ./Programs/GtkLauncher
     47$ WebKitTools/Scripts/run-launcher --gtk
    9448}}}
    9549
    96 To install the WebKit GTK+ library, simply issue
     50To build a debug build of WebKitGTK+ (which will contain debugging symbols useful for generating stack traces), you can pass the <tt>--debug</tt> argument to build-webkit:
    9751
     52{{{
     53$ WebKitTools/Scripts/build-webkit --gtk --debug
     54}}}
     55
     56
     57To install the WebKit GTK+ library, simply change into the Release directory and issue
    9858
    9959{{{
     
    10868
    10969on 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+].