Changes between Version 39 and Version 40 of BuildingGtk
- Timestamp:
- Jul 14, 2010, 11:41:34 AM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BuildingGtk
v39 v40 1 1 [[PageOutline]] 2 2 3 = WebKitGTK+ =3 = Building WebKitGTK+ = 4 4 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 == 6 6 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: 7 Following 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. 54 8 55 9 * autoconf 56 10 * 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 65 12 * bison (>= 2.4.1) 66 13 * 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 67 23 * libjpeg62-dev 24 * libpango1.0-dev (>= 1.16) 68 25 * libpng12-dev 26 * libsoup2.4-dev (>= 2.28.2) 27 * libsqlite3-dev 28 * libtool 29 * libxslt-dev 69 30 * libxt-dev 70 * autotools-dev71 * libgstreamer-plugins-base0.10-dev72 * libenchant-dev73 * libgail-dev74 * libgeoclue-dev75 * gtk-doc-tools76 31 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 == 78 33 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.34 To 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. 80 35 81 == Build and Install==36 == Launching the build == 82 37 83 The GTK+ port can now be built using autotools (autoconf, automake, libtool). To build the GTK+ port just issue the following commands:38 Once you have successfully checked the source out of the repository, simply run: 84 39 85 40 {{{ 86 $ ./autogen.sh --prefix=/path/to/install/directory 87 $ make 41 $ WebKitTools/Scripts/build-webkit --gtk 88 42 }}} 89 43 90 This will build a demo browser that uses the GTK+ port in the `Programs/` directory which you can run using the following command:44 This will build WebKit in the directory WebKitBuild/Release. Once the build finishes, you can run a simple demo browser by executing: 91 45 92 46 {{{ 93 $ ./Programs/GtkLauncher47 $ WebKitTools/Scripts/run-launcher --gtk 94 48 }}} 95 49 96 To install the WebKit GTK+ library, simply issue50 To 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: 97 51 52 {{{ 53 $ WebKitTools/Scripts/build-webkit --gtk --debug 54 }}} 55 56 57 To install the WebKit GTK+ library, simply change into the Release directory and issue 98 58 99 59 {{{ … … 108 68 109 69 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. 110 111 = Further links =112 113 * [ApplicationsGtk Applications using this Gtk port]114 * [wiki:"HackingGtk" the hacker's guide to WebKit/GTK+].