Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3
@ 2014-07-08 13:57 Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 1/9] libglib2: bump to version 2.40.0 Hadrien Boutteville
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Hello all,

This series mainly does two things: add libgtk3 and bump webkit.

 - 1..5: requirements and dependencies for libgtk3
 - 6: add libgtk3
 - 7: bump webkit
 - 8: is required by Midori
 - 9: bump Midori to test WebKit 2.4.3

For now, only X11 support is done and tested for both libgtk3 and webkit.
Wayland support will be done later.

Tests:

* All is compiled-tested (with GTK+2 and GTK+3 for WebKit and Midori).
* Running tests were done for libgtk3 (with gtk3-demo) and Midori GTK+2 with
  WebKit GTK+2 and webkit1 (on Qemu and BeagleBone Black).

For testing you will need GCC 4.8 because WebKit needs at least version 4.8 (see
commit message) and X.org needs a version lesser than 4.9 (see this issue:
http://lists.busybox.net/pipermail/buildroot/2014-June/098679.html).

There is still a weird problem with WebKit: parallel make with Make 3.81 results
in a make hang on:
  CXXLD libWebCoreSVG.la
This is reproducible.

You can find a defconfig for Qemu here: 
http://bpaste.net/show/fR3jDhQPmtUHPYpGoiUn/

Best regards,

Hadrien

---

Hadrien Boutteville (9):
  libglib2: bump to version 2.40.0
  pango: bump to version 1.36.3
  cairo: add freetype and gobject support
  at-spi2-core: new package
  at-spi2-atk: new package
  libgtk3: new package
  webkit: bump to version 2.4.3
  libsoup: add libsoup-gnome support
  midori: bump to version 0.5.8

 package/Config.in                                  |    3 +
 package/at-spi2-atk/Config.in                      |   16 +
 package/at-spi2-atk/at-spi2-atk.mk                 |   19 +
 package/at-spi2-core/Config.in                     |   17 +
 ...se-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch |   79 ++
 package/at-spi2-core/at-spi2-core.mk               |   24 +
 package/cairo/cairo.mk                             |   14 +
 ...ror-format-string-errors-from-mismatched-.patch |   56 -
 package/libglib2/libglib2-0002-no-gtk-doc.patch    |   25 +
 package/libglib2/libglib2.mk                       |    4 +-
 package/libgtk3/Config.in                          |   47 +
 package/libgtk3/libgtk3-0001-no-gtk-doc.patch      |   11 +
 .../libgtk3-0002-add-file-introspection-m4.patch   |  100 ++
 package/libgtk3/libgtk3.mk                         |  184 +++
 package/libsoup/Config.in                          |    5 +
 package/libsoup/libsoup.mk                         |    8 +-
 package/midori/Config.in                           |   15 +-
 .../midori-0001-remove-libnotify-dependency.patch  |   27 +
 package/midori/midori.mk                           |   51 +-
 package/pango/Config.in                            |    1 +
 package/pango/pango-0001-no-tests.patch            |   27 +
 package/pango/pango-0002-no-gtk-doc.patch          |   25 +
 package/pango/pango-no-const-return.patch          |  475 -------
 package/pango/pango-no-tests.patch                 |   22 -
 package/pango/pango.mk                             |   19 +-
 package/webkit/Config.in                           |   16 +-
 ...ebkit-0001-build-fix-for-32-bit-autotools.patch |   34 -
 .../webkit-0002-build-fix-for-gtklauncher.patch    |   51 -
 .../webkit/webkit-0003-detect-harfbuzz-icu.patch   |   28 -
 package/webkit/webkit-0004-disable-docrebase.patch |   27 -
 package/webkit/webkit-0005-disable-tests.patch     |   80 --
 package/webkit/webkit-0006-execinfo_h.patch        |   20 -
 package/webkit/webkit-0007-mips-dfg.patch          | 1490 --------------------
 package/webkit/webkit-0008-support-bison-3.0.patch |   22 -
 package/webkit/webkit.mk                           |   67 +-
 35 files changed, 711 insertions(+), 2398 deletions(-)
 create mode 100644 package/at-spi2-atk/Config.in
 create mode 100644 package/at-spi2-atk/at-spi2-atk.mk
 create mode 100644 package/at-spi2-core/Config.in
 create mode 100644 package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
 create mode 100644 package/at-spi2-core/at-spi2-core.mk
 delete mode 100644 package/libglib2/0001-gio-Fix-Werror-format-string-errors-from-mismatched-.patch
 create mode 100644 package/libglib2/libglib2-0002-no-gtk-doc.patch
 create mode 100644 package/libgtk3/Config.in
 create mode 100644 package/libgtk3/libgtk3-0001-no-gtk-doc.patch
 create mode 100644 package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
 create mode 100644 package/libgtk3/libgtk3.mk
 create mode 100644 package/midori/midori-0001-remove-libnotify-dependency.patch
 create mode 100644 package/pango/pango-0001-no-tests.patch
 create mode 100644 package/pango/pango-0002-no-gtk-doc.patch
 delete mode 100644 package/pango/pango-no-const-return.patch
 delete mode 100644 package/pango/pango-no-tests.patch
 delete mode 100644 package/webkit/webkit-0001-build-fix-for-32-bit-autotools.patch
 delete mode 100644 package/webkit/webkit-0002-build-fix-for-gtklauncher.patch
 delete mode 100644 package/webkit/webkit-0003-detect-harfbuzz-icu.patch
 delete mode 100644 package/webkit/webkit-0004-disable-docrebase.patch
 delete mode 100644 package/webkit/webkit-0005-disable-tests.patch
 delete mode 100644 package/webkit/webkit-0006-execinfo_h.patch
 delete mode 100644 package/webkit/webkit-0007-mips-dfg.patch
 delete mode 100644 package/webkit/webkit-0008-support-bison-3.0.patch

-- 
2.0.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 1/9] libglib2: bump to version 2.40.0
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 2/9] pango: bump to version 1.36.3 Hadrien Boutteville
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Remove patch because it is applied upstream in this version.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 ...ror-format-string-errors-from-mismatched-.patch | 56 ----------------------
 package/libglib2/libglib2-0002-no-gtk-doc.patch    | 25 ++++++++++
 package/libglib2/libglib2.mk                       |  4 +-
 3 files changed, 27 insertions(+), 58 deletions(-)
 delete mode 100644 package/libglib2/0001-gio-Fix-Werror-format-string-errors-from-mismatched-.patch
 create mode 100644 package/libglib2/libglib2-0002-no-gtk-doc.patch

diff --git a/package/libglib2/0001-gio-Fix-Werror-format-string-errors-from-mismatched-.patch b/package/libglib2/0001-gio-Fix-Werror-format-string-errors-from-mismatched-.patch
deleted file mode 100644
index 9b87d9d..0000000
--- a/package/libglib2/0001-gio-Fix-Werror-format-string-errors-from-mismatched-.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0167c3340d8201dca8e9031b61703bbc5ed6ce33 Mon Sep 17 00:00:00 2001
-From: Jan Schmidt <thaytan@noraisin.net>
-Date: Wed, 25 Sep 2013 19:22:26 +1000
-Subject: [PATCH] gio: Fix -Werror format string errors from mismatched ints.
-
-Upstream-Status: Backport
-
----
- gio/gdbusmessage.c | 8 ++++----
- gio/gdbusprivate.c | 4 ++--
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c
-index ac233a3..ad77aa6 100644
---- a/gio/gdbusmessage.c
-+++ b/gio/gdbusmessage.c
-@@ -3468,10 +3468,10 @@ g_dbus_message_print (GDBusMessage *message,
-                                           statbuf.st_mode);
-                   g_string_append_printf (fs, "%s" "ino=%" G_GUINT64_FORMAT, fs->len > 0 ? "," : "",
-                                           (guint64) statbuf.st_ino);
--                  g_string_append_printf (fs, "%s" "uid=%d", fs->len > 0 ? "," : "",
--                                          statbuf.st_uid);
--                  g_string_append_printf (fs, "%s" "gid=%d", fs->len > 0 ? "," : "",
--                                          statbuf.st_gid);
-+                  g_string_append_printf (fs, "%s" "uid=%u", fs->len > 0 ? "," : "",
-+                                          (guint) statbuf.st_uid);
-+                  g_string_append_printf (fs, "%s" "gid=%u", fs->len > 0 ? "," : "",
-+                                          (guint) statbuf.st_gid);
-                   g_string_append_printf (fs, "%s" "rdev=%d:%d", fs->len > 0 ? "," : "",
-                                           major (statbuf.st_rdev), minor (statbuf.st_rdev));
-                   g_string_append_printf (fs, "%s" "size=%" G_GUINT64_FORMAT, fs->len > 0 ? "," : "",
-diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
-index 0e5bef2..785a0c0 100644
---- a/gio/gdbusprivate.c
-+++ b/gio/gdbusprivate.c
-@@ -2155,7 +2155,7 @@ write_message_print_transport_debug (gssize bytes_written,
-   _g_dbus_debug_print_lock ();
-   g_print ("========================================================================\n"
-            "GDBus-debug:Transport:\n"
--           "  >>>> WROTE %" G_GSIZE_FORMAT " bytes of message with serial %d and\n"
-+           "  >>>> WROTE %" G_GSSIZE_FORMAT " bytes of message with serial %d and\n"
-            "       size %" G_GSIZE_FORMAT " from offset %" G_GSIZE_FORMAT " on a %s\n",
-            bytes_written,
-            g_dbus_message_get_serial (data->message),
-@@ -2206,7 +2206,7 @@ read_message_print_transport_debug (gssize bytes_read,
-     _g_dbus_debug_print_lock ();
-   g_print ("========================================================================\n"
-            "GDBus-debug:Transport:\n"
--           "  <<<< READ %" G_GSIZE_FORMAT " bytes of message with serial %d and\n"
-+           "  <<<< READ %" G_GSSIZE_FORMAT " bytes of message with serial %d and\n"
-            "       size %d to offset %" G_GSIZE_FORMAT " from a %s\n",
-            bytes_read,
-            serial,
--- 
-1.8.3.1
-
diff --git a/package/libglib2/libglib2-0002-no-gtk-doc.patch b/package/libglib2/libglib2-0002-no-gtk-doc.patch
new file mode 100644
index 0000000..926a263
--- /dev/null
+++ b/package/libglib2/libglib2-0002-no-gtk-doc.patch
@@ -0,0 +1,25 @@
+Same patch as for systemd in commit
+7144f2f04b705538a893e538a6b851f536f433b6:
+
+Fix deactivation of gtk-doc
+
+The tarball contains the Makefile for building documentation with gtk-doc,
+Unfortunately the AM_CONDITIONAL variable is not the correct one, which
+results in an error when running autoreconf.
+
+This patch fixes this issue.
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/gtk-doc.make
++++ b/gtk-doc.make
+@@ -267,7 +267,7 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
++if ENABLE_GTK_DOC
+ dist-check-gtkdoc: docs
+ else
+ dist-check-gtkdoc:
diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index 8df7c55..255b85d 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-LIBGLIB2_VERSION_MAJOR = 2.38
-LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).2
+LIBGLIB2_VERSION_MAJOR = 2.40
+LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0
 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz
 LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
 LIBGLIB2_LICENSE = LGPLv2+
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 2/9] pango: bump to version 1.36.3
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 1/9] libglib2: bump to version 2.40.0 Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 3/9] cairo: add freetype and gobject support Hadrien Boutteville
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Note: HarfBuzz is needed to build Pango. Configure does not return an
error if HarfBuzz is missing, but without HarfBuzz it can't enable any
backends.

Remove patch pango-no-const-return because it is applied upstream in
this version.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/pango/Config.in                   |   1 +
 package/pango/pango-0001-no-tests.patch   |  27 ++
 package/pango/pango-0002-no-gtk-doc.patch |  25 ++
 package/pango/pango-no-const-return.patch | 475 ------------------------------
 package/pango/pango-no-tests.patch        |  22 --
 package/pango/pango.mk                    |  19 +-
 6 files changed, 63 insertions(+), 506 deletions(-)
 create mode 100644 package/pango/pango-0001-no-tests.patch
 create mode 100644 package/pango/pango-0002-no-gtk-doc.patch
 delete mode 100644 package/pango/pango-no-const-return.patch
 delete mode 100644 package/pango/pango-no-tests.patch

diff --git a/package/pango/Config.in b/package/pango/Config.in
index 774682d..70f4fd3 100644
--- a/package/pango/Config.in
+++ b/package/pango/Config.in
@@ -9,6 +9,7 @@ config BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_HARFBUZZ
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
 	help
diff --git a/package/pango/pango-0001-no-tests.patch b/package/pango/pango-0001-no-tests.patch
new file mode 100644
index 0000000..e6777f6
--- /dev/null
+++ b/package/pango/pango-0001-no-tests.patch
@@ -0,0 +1,27 @@
+Prevent Pango to build tests.
+
+Updated to Pango 1.36.3 by Hadrien Boutteville.
+
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in.
+ 
+-SUBDIRS= pango modules pango-view examples docs tools tests build
++SUBDIRS= pango modules pango-view examples docs tools build
+ 
+ EXTRA_DIST = 			\
+ 	autogen.sh		\
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -418,7 +418,7 @@ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = pango modules pango-view examples docs tools tests build
++SUBDIRS = pango modules pango-view examples docs tools build
+ EXTRA_DIST = \
+ 	autogen.sh		\
+ 	pango.pc.in		\
diff --git a/package/pango/pango-0002-no-gtk-doc.patch b/package/pango/pango-0002-no-gtk-doc.patch
new file mode 100644
index 0000000..926a263
--- /dev/null
+++ b/package/pango/pango-0002-no-gtk-doc.patch
@@ -0,0 +1,25 @@
+Same patch as for systemd in commit
+7144f2f04b705538a893e538a6b851f536f433b6:
+
+Fix deactivation of gtk-doc
+
+The tarball contains the Makefile for building documentation with gtk-doc,
+Unfortunately the AM_CONDITIONAL variable is not the correct one, which
+results in an error when running autoreconf.
+
+This patch fixes this issue.
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/gtk-doc.make
++++ b/gtk-doc.make
+@@ -267,7 +267,7 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
++if ENABLE_GTK_DOC
+ dist-check-gtkdoc: docs
+ else
+ dist-check-gtkdoc:
diff --git a/package/pango/pango-no-const-return.patch b/package/pango/pango-no-const-return.patch
deleted file mode 100644
index a0749a4..0000000
--- a/package/pango/pango-no-const-return.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-From 4b060ca43c9605be2fdb219a379f8a17c33b0d98 Mon Sep 17 00:00:00 2001
-From: Ryan Lortie <desrt@desrt.ca>
-Date: Thu, 9 Jun 2011 11:36:59 -0400
-Subject: [PATCH] Stop using G_CONST_RETURN in Pango
-
-Upstream: 4c7807daee7189f48
-
-G_CONST_RETURN is headed for deprecation (as per bug #644611).  Stop
-using it in Pango.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=652202
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- modules/hebrew/hebrew-shaper.c |    2 +-
- pango/fonts.c                  |    6 +++---
- pango/pango-attributes.c       |    2 +-
- pango/pango-attributes.h       |    2 +-
- pango/pango-context.c          |    2 +-
- pango/pango-context.h          |    6 +++---
- pango/pango-font.h             |    6 +++---
- pango/pango-fontmap.c          |    2 +-
- pango/pango-language.c         |    6 +++---
- pango/pango-language.h         |    6 +++---
- pango/pango-layout.c           |    4 ++--
- pango/pango-layout.h           |    2 +-
- pango/pango-ot-ruleset.c       |    2 +-
- pango/pango-renderer.c         |    2 +-
- pango/pango-renderer.h         |    2 +-
- pango/pango-script.c           |    8 ++++----
- pango/pango-script.h           |   12 ++++++------
- pango/pango-utils.c            |    4 ++--
- pango/pango-utils.h            |   12 ++++++------
- pango/pangocairo-context.c     |    4 ++--
- pango/pangoft2.c               |    2 +-
- pango/pangox-fontmap.c         |    4 ++--
- 22 files changed, 49 insertions(+), 49 deletions(-)
-
-diff --git a/modules/hebrew/hebrew-shaper.c b/modules/hebrew/hebrew-shaper.c
-index 8aa3638..db3055b 100644
---- a/modules/hebrew/hebrew-shaper.c
-+++ b/modules/hebrew/hebrew-shaper.c
-@@ -167,7 +167,7 @@ static const gboolean compose_table[4][4] = {
- #define	is_composible(cur_wc, nxt_wc)	(compose_table[char_type_table[ucs2iso8859_8 (cur_wc)]]\
- 						      [char_type_table[ucs2iso8859_8 (nxt_wc)]])
- 
--G_CONST_RETURN char *
-+const char *
- hebrew_shaper_get_next_cluster(const char      *text,
- 			       gint		length,
- 			       gunichar        *cluster,
-diff --git a/pango/fonts.c b/pango/fonts.c
-index ab5397a..d9de7de 100644
---- a/pango/fonts.c
-+++ b/pango/fonts.c
-@@ -165,7 +165,7 @@ pango_font_description_set_family_static (PangoFontDescription *desc,
-  *               %NULL if not previously set.  This has the same life-time
-  *               as the font description itself and should not be freed.
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_font_description_get_family (const PangoFontDescription *desc)
- {
-   g_return_val_if_fail (desc != NULL, NULL);
-@@ -1927,7 +1927,7 @@ pango_font_family_init (PangoFontFamily *family G_GNUC_UNUSED)
-  * Return value: the name of the family. This string is owned
-  *   by the family object and must not be modified or freed.
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_font_family_get_name (PangoFontFamily  *family)
- {
-   g_return_val_if_fail (PANGO_IS_FONT_FAMILY (family), NULL);
-@@ -2060,7 +2060,7 @@ pango_font_face_is_synthesized (PangoFontFace  *face)
-  * Return value: the face name for the face. This string is
-  *   owned by the face object and must not be modified or freed.
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_font_face_get_face_name (PangoFontFace *face)
- {
-   g_return_val_if_fail (PANGO_IS_FONT_FACE (face), NULL);
-diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c
-index 28c11de..373fba1 100644
---- a/pango/pango-attributes.c
-+++ b/pango/pango-attributes.c
-@@ -97,7 +97,7 @@ pango_attr_type_register (const gchar *name)
-  *
-  * Since: 1.22
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_attr_type_get_name (PangoAttrType type)
- {
-   const char *result = NULL;
-diff --git a/pango/pango-attributes.h b/pango/pango-attributes.h
-index 866e35d..59f97a3 100644
---- a/pango/pango-attributes.h
-+++ b/pango/pango-attributes.h
-@@ -180,7 +180,7 @@ struct _PangoAttrFontDesc
- };
- 
- PangoAttrType         pango_attr_type_register (const gchar        *name);
--G_CONST_RETURN char * pango_attr_type_get_name (PangoAttrType       type) G_GNUC_CONST;
-+const char *          pango_attr_type_get_name (PangoAttrType       type) G_GNUC_CONST;
- 
- void             pango_attribute_init        (PangoAttribute       *attr,
- 					      const PangoAttrClass *klass);
-diff --git a/pango/pango-context.c b/pango/pango-context.c
-index 6ec0b56..3c9442a 100644
---- a/pango/pango-context.c
-+++ b/pango/pango-context.c
-@@ -188,7 +188,7 @@ pango_context_set_matrix (PangoContext       *context,
-  *
-  * Since: 1.6
-  **/
--G_CONST_RETURN PangoMatrix *
-+const PangoMatrix *
- pango_context_get_matrix (PangoContext *context)
- {
-   g_return_val_if_fail (PANGO_IS_CONTEXT (context), NULL);
-diff --git a/pango/pango-context.h b/pango/pango-context.h
-index d8c3cb8..d85928a 100644
---- a/pango/pango-context.h
-+++ b/pango/pango-context.h
-@@ -84,9 +84,9 @@ void                      pango_context_set_gravity_hint     (PangoContext
- 							      PangoGravityHint            hint);
- PangoGravityHint          pango_context_get_gravity_hint     (PangoContext               *context);
- 
--void                        pango_context_set_matrix (PangoContext      *context,
--						      const PangoMatrix *matrix);
--G_CONST_RETURN PangoMatrix *pango_context_get_matrix (PangoContext      *context);
-+void                      pango_context_set_matrix           (PangoContext      *context,
-+						              const PangoMatrix *matrix);
-+const PangoMatrix *       pango_context_get_matrix           (PangoContext      *context);
- 
- /* Break a string of Unicode characters into segments with
-  * consistent shaping/language engine and bidrectional level.
-diff --git a/pango/pango-font.h b/pango/pango-font.h
-index b5b2cf1..eea27b4 100644
---- a/pango/pango-font.h
-+++ b/pango/pango-font.h
-@@ -117,7 +117,7 @@ void                 pango_font_description_set_family        (PangoFontDescript
- 							       const char           *family);
- void                 pango_font_description_set_family_static (PangoFontDescription *desc,
- 							       const char           *family);
--G_CONST_RETURN char *pango_font_description_get_family        (const PangoFontDescription *desc) G_GNUC_PURE;
-+const char          *pango_font_description_get_family        (const PangoFontDescription *desc) G_GNUC_PURE;
- void                 pango_font_description_set_style         (PangoFontDescription *desc,
- 							       PangoStyle            style);
- PangoStyle           pango_font_description_get_style         (const PangoFontDescription *desc) G_GNUC_PURE;
-@@ -212,7 +212,7 @@ GType      pango_font_family_get_type       (void) G_GNUC_CONST;
- void                 pango_font_family_list_faces (PangoFontFamily  *family,
- 						   PangoFontFace  ***faces,
- 						   int              *n_faces);
--G_CONST_RETURN char *pango_font_family_get_name   (PangoFontFamily  *family) G_GNUC_PURE;
-+const char *pango_font_family_get_name   (PangoFontFamily  *family) G_GNUC_PURE;
- gboolean   pango_font_family_is_monospace         (PangoFontFamily  *family) G_GNUC_PURE;
- 
- #ifdef PANGO_ENABLE_BACKEND
-@@ -261,7 +261,7 @@ struct _PangoFontFamilyClass
- GType      pango_font_face_get_type       (void) G_GNUC_CONST;
- 
- PangoFontDescription *pango_font_face_describe       (PangoFontFace  *face);
--G_CONST_RETURN char  *pango_font_face_get_face_name  (PangoFontFace  *face) G_GNUC_PURE;
-+const char           *pango_font_face_get_face_name  (PangoFontFace  *face) G_GNUC_PURE;
- void                  pango_font_face_list_sizes     (PangoFontFace  *face,
- 						      int           **sizes,
- 						      int            *n_sizes);
-diff --git a/pango/pango-fontmap.c b/pango/pango-fontmap.c
-index 13f4263..78b1692 100644
---- a/pango/pango-fontmap.c
-+++ b/pango/pango-fontmap.c
-@@ -290,7 +290,7 @@ pango_font_map_real_load_fontset (PangoFontMap               *fontmap,
-  *
-  * Since: 1.4
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_font_map_get_shape_engine_type (PangoFontMap *fontmap)
- {
-   g_return_val_if_fail (PANGO_IS_FONT_MAP (fontmap), NULL);
-diff --git a/pango/pango-language.c b/pango/pango-language.c
-index bfde308..2bb294e 100644
---- a/pango/pango-language.c
-+++ b/pango/pango-language.c
-@@ -319,7 +319,7 @@ pango_language_from_string (const char *language)
-  * Returns: a string representing the language tag.  This is owned by
-  *          Pango and should not be freed.
-  */
--G_CONST_RETURN char *
-+const char *
- (pango_language_to_string) (PangoLanguage *language)
- {
-   return pango_language_to_string (language);
-@@ -531,7 +531,7 @@ static const LangInfo lang_texts[] = {
-  * Return value: the sample string. This value is owned by Pango
-  *   and should not be freed.
-  **/
--G_CONST_RETURN char *
-+const char *
- pango_language_get_sample_string (PangoLanguage *language)
- {
-   const LangInfo *lang_info;
-@@ -592,7 +592,7 @@ pango_language_get_sample_string (PangoLanguage *language)
-  
-  * Since: 1.22
-  **/
--G_CONST_RETURN PangoScript *
-+const PangoScript *
- pango_language_get_scripts (PangoLanguage *language,
- 			    int           *num_scripts)
- {
-diff --git a/pango/pango-language.h b/pango/pango-language.h
-index 37cdc16..31660ca 100644
---- a/pango/pango-language.h
-+++ b/pango/pango-language.h
-@@ -34,11 +34,11 @@ typedef struct _PangoLanguage PangoLanguage;
- GType          pango_language_get_type    (void) G_GNUC_CONST;
- PangoLanguage *pango_language_from_string (const char *language);
- 
--G_CONST_RETURN char *pango_language_to_string   (PangoLanguage *language) G_GNUC_CONST;
-+const char    *pango_language_to_string   (PangoLanguage *language) G_GNUC_CONST;
- /* For back compat.  Will have to keep indefinitely. */
- #define pango_language_to_string(language) ((const char *)language)
- 
--G_CONST_RETURN char *pango_language_get_sample_string (PangoLanguage *language) G_GNUC_CONST;
-+const char    *pango_language_get_sample_string (PangoLanguage *language) G_GNUC_CONST;
- PangoLanguage *pango_language_get_default (void) G_GNUC_CONST;
- 
- gboolean      pango_language_matches  (PangoLanguage *language,
-@@ -48,7 +48,7 @@ gboolean      pango_language_matches  (PangoLanguage *language,
- 
- gboolean		    pango_language_includes_script (PangoLanguage *language,
- 							    PangoScript    script) G_GNUC_PURE;
--G_CONST_RETURN PangoScript *pango_language_get_scripts	   (PangoLanguage *language,
-+const PangoScript          *pango_language_get_scripts	   (PangoLanguage *language,
- 							    int           *num_scripts);
- 
- G_END_DECLS
-diff --git a/pango/pango-layout.c b/pango/pango-layout.c
-index 12f9dee..2dc0c17 100644
---- a/pango/pango-layout.c
-+++ b/pango/pango-layout.c
-@@ -677,7 +677,7 @@ pango_layout_set_font_description (PangoLayout                 *layout,
-  *
-  * Since: 1.8
-  **/
--G_CONST_RETURN PangoFontDescription *
-+const PangoFontDescription *
- pango_layout_get_font_description (PangoLayout *layout)
- {
-   g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
-@@ -1087,7 +1087,7 @@ pango_layout_set_text (PangoLayout *layout,
-  *
-  * Return value: the text in the @layout.
-  **/
--G_CONST_RETURN char*
-+const char*
- pango_layout_get_text (PangoLayout *layout)
- {
-   g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
-diff --git a/pango/pango-layout.h b/pango/pango-layout.h
-index 3b769ff..d786dc6 100644
---- a/pango/pango-layout.h
-+++ b/pango/pango-layout.h
-@@ -116,7 +116,7 @@ void           pango_layout_set_markup_with_accel (PangoLayout    *layout,
- void           pango_layout_set_font_description (PangoLayout                *layout,
- 						  const PangoFontDescription *desc);
- 
--G_CONST_RETURN PangoFontDescription *pango_layout_get_font_description (PangoLayout *layout);
-+const PangoFontDescription *pango_layout_get_font_description (PangoLayout *layout);
- 
- void           pango_layout_set_width            (PangoLayout                *layout,
- 						  int                         width);
-diff --git a/pango/pango-ot-ruleset.c b/pango/pango-ot-ruleset.c
-index b5e2795..8fe7b72 100644
---- a/pango/pango-ot-ruleset.c
-+++ b/pango/pango-ot-ruleset.c
-@@ -107,7 +107,7 @@ pango_ot_ruleset_finalize (GObject *object)
-  *
-  * Since: 1.18
-  **/
--G_CONST_RETURN PangoOTRuleset *
-+const PangoOTRuleset *
- pango_ot_ruleset_get_for_description (PangoOTInfo                     *info,
- 				      const PangoOTRulesetDescription *desc)
- {
-diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c
-index db75446..a1fea5e 100644
---- a/pango/pango-renderer.c
-+++ b/pango/pango-renderer.c
-@@ -1352,7 +1352,7 @@ pango_renderer_set_matrix (PangoRenderer     *renderer,
-  *
-  * Since: 1.8
-  **/
--G_CONST_RETURN PangoMatrix *
-+const PangoMatrix *
- pango_renderer_get_matrix (PangoRenderer *renderer)
- {
-   g_return_val_if_fail (PANGO_IS_RENDERER (renderer), NULL);
-diff --git a/pango/pango-renderer.h b/pango/pango-renderer.h
-index 354127b..5410a9f 100644
---- a/pango/pango-renderer.h
-+++ b/pango/pango-renderer.h
-@@ -249,7 +249,7 @@ PangoColor *pango_renderer_get_color (PangoRenderer    *renderer,
- 
- void                        pango_renderer_set_matrix (PangoRenderer     *renderer,
- 						       const PangoMatrix *matrix);
--G_CONST_RETURN PangoMatrix *pango_renderer_get_matrix (PangoRenderer     *renderer);
-+const PangoMatrix          *pango_renderer_get_matrix (PangoRenderer     *renderer);
- 
- PangoLayout     *pango_renderer_get_layout      (PangoRenderer     *renderer);
- PangoLayoutLine *pango_renderer_get_layout_line (PangoRenderer     *renderer);
-diff --git a/pango/pango-script.c b/pango/pango-script.c
-index 605e46e..1d57a69 100644
---- a/pango/pango-script.c
-+++ b/pango/pango-script.c
-@@ -164,10 +164,10 @@ pango_script_iter_free (PangoScriptIter *iter)
-  * Since: 1.4
-  **/
- void
--pango_script_iter_get_range (PangoScriptIter      *iter,
--			     G_CONST_RETURN char **start,
--			     G_CONST_RETURN char **end,
--			     PangoScript          *script)
-+pango_script_iter_get_range (PangoScriptIter  *iter,
-+                             const char      **start,
-+                             const char      **end,
-+                             PangoScript      *script)
- {
-   if (start)
-     *start = iter->script_start;
-diff --git a/pango/pango-script.h b/pango/pango-script.h
-index 32ef737..ef5f698 100644
---- a/pango/pango-script.h
-+++ b/pango/pango-script.h
-@@ -128,12 +128,12 @@ PangoScript pango_script_for_unichar         (gunichar             ch) G_GNUC_CO
- 
- PangoScriptIter *pango_script_iter_new       (const char          *text,
- 					      int                  length);
--void             pango_script_iter_get_range (PangoScriptIter      *iter,
--					      G_CONST_RETURN char **start,
--					      G_CONST_RETURN char **end,
--					      PangoScript          *script);
--gboolean         pango_script_iter_next      (PangoScriptIter      *iter);
--void             pango_script_iter_free      (PangoScriptIter      *iter);
-+void             pango_script_iter_get_range (PangoScriptIter     *iter,
-+                                              const char         **start,
-+                                              const char         **end,
-+                                              PangoScript         *script);
-+gboolean         pango_script_iter_next      (PangoScriptIter     *iter);
-+void             pango_script_iter_free      (PangoScriptIter     *iter);
- 
- #include <pango/pango-language.h>
- 
-diff --git a/pango/pango-utils.c b/pango/pango-utils.c
-index 100dbc7..71deeef 100644
---- a/pango/pango-utils.c
-+++ b/pango/pango-utils.c
-@@ -689,7 +689,7 @@ DllMain (HINSTANCE hinstDLL,
-  * Return value: the Pango sysconf directory. The returned string should
-  * not be freed.
-  */
--G_CONST_RETURN char *
-+const char *
- pango_get_sysconf_subdirectory (void)
- {
- #ifdef G_OS_WIN32
-@@ -718,7 +718,7 @@ pango_get_sysconf_subdirectory (void)
-  * Return value: the Pango lib directory. The returned string should
-  * not be freed.
-  */
--G_CONST_RETURN char *
-+const char *
- pango_get_lib_subdirectory (void)
- {
- #ifdef G_OS_WIN32
-diff --git a/pango/pango-utils.h b/pango/pango-utils.h
-index 41a8bbb..f86c662 100644
---- a/pango/pango-utils.h
-+++ b/pango/pango-utils.h
-@@ -82,13 +82,13 @@ gboolean pango_parse_stretch (const char   *str,
-  * stored in the registry). The returned string should not be
-  * g_free'd.
-  */
--G_CONST_RETURN char *   pango_get_sysconf_subdirectory (void) G_GNUC_PURE;
-+const char *   pango_get_sysconf_subdirectory (void) G_GNUC_PURE;
- 
- /* Ditto for LIBDIR/pango. On Win32, use the same Pango
-  * installation directory. This returned string should not be
-  * g_free'd either.
-  */
--G_CONST_RETURN char *   pango_get_lib_subdirectory (void) G_GNUC_PURE;
-+const char *   pango_get_lib_subdirectory (void) G_GNUC_PURE;
- 
- #endif /* PANGO_ENABLE_BACKEND */
- 
-@@ -131,12 +131,12 @@ gboolean pango_is_zero_width (gunichar ch) G_GNUC_CONST;
- int pango_version (void) G_GNUC_CONST;
- 
- /* Return run-time Pango version as an string */
--G_CONST_RETURN char * pango_version_string (void) G_GNUC_CONST;
-+const char * pango_version_string (void) G_GNUC_CONST;
- 
- /* Check that run-time Pango is as new as required */
--G_CONST_RETURN char * pango_version_check (int required_major,
--					   int required_minor,
--					   int required_micro) G_GNUC_CONST;
-+const char * pango_version_check (int required_major,
-+                                  int required_minor,
-+                                  int required_micro) G_GNUC_CONST;
- 
- G_END_DECLS
- 
-diff --git a/pango/pangocairo-context.c b/pango/pangocairo-context.c
-index 69432f0..f61e839 100644
---- a/pango/pangocairo-context.c
-+++ b/pango/pangocairo-context.c
-@@ -260,7 +260,7 @@ pango_cairo_context_set_font_options (PangoContext               *context,
-  *
-  * Since: 1.10
-  **/
--G_CONST_RETURN cairo_font_options_t *
-+const cairo_font_options_t *
- pango_cairo_context_get_font_options (PangoContext *context)
- {
-   PangoCairoContextInfo *info;
-@@ -286,7 +286,7 @@ pango_cairo_context_get_font_options (PangoContext *context)
-  * Return value: the combined set of font options. This value is owned
-  * by the context and must not be modified or freed.
-  **/
--G_CONST_RETURN cairo_font_options_t *
-+const cairo_font_options_t *
- _pango_cairo_context_get_merged_font_options (PangoContext *context)
- {
-   PangoCairoContextInfo *info = get_context_info (context, TRUE);
-diff --git a/pango/pangoft2.c b/pango/pangoft2.c
-index f4a3864..b41c468 100644
---- a/pango/pangoft2.c
-+++ b/pango/pangoft2.c
-@@ -520,7 +520,7 @@ ft_error_compare (const void *pkey,
-   return ((ft_error_description *) pkey)->code - ((ft_error_description *) pbase)->code;
- }
- 
--G_CONST_RETURN char *
-+const char *
- _pango_ft2_ft_strerror (FT_Error error)
- {
- #undef __FTERRORS_H__
-diff --git a/pango/pangox-fontmap.c b/pango/pangox-fontmap.c
-index 6d5e547..3f5343f 100644
---- a/pango/pangox-fontmap.c
-+++ b/pango/pangox-fontmap.c
-@@ -1441,7 +1441,7 @@ pango_x_fontmap_atom_from_name (PangoFontMap *fontmap,
- }
- 
- 
--G_CONST_RETURN char *
-+const char *
- pango_x_fontmap_name_from_atom (PangoFontMap *fontmap,
- 				Atom          atom)
- {
-@@ -1645,7 +1645,7 @@ pango_x_family_list_faces (PangoFontFamily  *family,
-     }
- }
- 
--static G_CONST_RETURN char *
-+static const char *
- pango_x_family_get_name (PangoFontFamily  *family)
- {
-   PangoXFamily *xfamily = PANGO_X_FAMILY (family);
--- 
-1.7.8.3
-
diff --git a/package/pango/pango-no-tests.patch b/package/pango/pango-no-tests.patch
deleted file mode 100644
index 7ebcbc6..0000000
--- a/package/pango/pango-no-tests.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/Makefile.in	2008-01-21 22:28:49.000000000 -0500
-+++ b/Makefile.in	2008-02-09 13:02:41.000000000 -0500
-@@ -260,7 +260,7 @@ sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = pango modules pango-view examples docs tools tests
-+SUBDIRS = pango modules pango-view examples docs tools 
- EXTRA_DIST = \
- 	autogen.sh		\
- 	pango.pc.in		\
-
---- a/Makefile.am	2008-01-17 16:37:49.000000000 -0500
-+++ b/Makefile.am	2008-02-09 13:35:13.000000000 -0500
-@@ -1,6 +1,6 @@
- ## Process this file with automake to create Makefile.in.
- 
--SUBDIRS= pango modules pango-view examples docs tools tests
-+SUBDIRS= pango modules pango-view examples docs tools 
- 
- EXTRA_DIST = 			\
- 	autogen.sh		\
diff --git a/package/pango/pango.mk b/package/pango/pango.mk
index 7e5f9a7..ce1a4f3 100644
--- a/package/pango/pango.mk
+++ b/package/pango/pango.mk
@@ -4,9 +4,9 @@
 #
 ################################################################################
 
-PANGO_VERSION_MAJOR = 1.28
-PANGO_VERSION = $(PANGO_VERSION_MAJOR).4
-PANGO_SOURCE = pango-$(PANGO_VERSION).tar.bz2
+PANGO_VERSION_MAJOR = 1.36
+PANGO_VERSION = $(PANGO_VERSION_MAJOR).3
+PANGO_SOURCE = pango-$(PANGO_VERSION).tar.xz
 PANGO_SITE = http://ftp.gnome.org/pub/GNOME/sources/pango/$(PANGO_VERSION_MAJOR)
 PANGO_AUTORECONF = YES
 PANGO_INSTALL_STAGING = YES
@@ -40,26 +40,27 @@ PANGO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
 		ac_use_included_regex=no gl_cv_c_restrict=no \
 		ac_cv_path_FREETYPE_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config
 
-PANGO_CONF_OPT = --enable-explicit-deps=no --disable-debug
+PANGO_CONF_OPT = --enable-explicit-deps=no \
+	--disable-debug \
+	--disable-gtk-doc-html
 
 PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
 	host-pkgconf \
 	libglib2 \
 	cairo \
+	harfbuzz \
 	fontconfig \
 	freetype
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
-        PANGO_CONF_OPT += --with-x \
-		--x-includes=$(STAGING_DIR)/usr/include/X11 \
-		--x-libraries=$(STAGING_DIR)/usr/lib --disable-glibtest
+	PANGO_CONF_OPT += --x-includes=$(STAGING_DIR)/usr/include/X11 \
+		--x-libraries=$(STAGING_DIR)/usr/lib
 	PANGO_DEPENDENCIES += xlib_libX11
-else
-        PANGO_CONF_OPT += --without-x
 endif
 
 ifeq ($(BR2_PACKAGE_XLIB_LIBXFT)$(BR2_PACKAGE_XLIB_LIBXRENDER),yy)
 	PANGO_DEPENDENCIES += xlib_libXft xlib_libXrender
+	PANGO_CONF_OPT += --with-xft
 endif
 
 define PANGO_INSTALL_INITSCRIPT
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 3/9] cairo: add freetype and gobject support
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 1/9] libglib2: bump to version 2.40.0 Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 2/9] pango: bump to version 1.36.3 Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 4/9] at-spi2-core: new package Hadrien Boutteville
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/cairo/cairo.mk | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 789dfa7..a4c71b6 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -55,6 +55,20 @@ else
 	CAIRO_CONF_OPT += --disable-directfb
 endif
 
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+	CAIRO_CONF_OPT += --enable-ft
+	CAIRO_DEPENDENCIES += freetype
+else
+	CAIRO_CONF_OPT += --disable-ft
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+	CAIRO_CONF_OPT += --enable-gobject
+	CAIRO_DEPENDENCIES += libglib2
+else
+	CAIRO_CONF_OPT += --disable-gobject
+endif
+
 ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
 	CAIRO_CONF_OPT += --enable-glesv2
 	CAIRO_DEPENDENCIES += libgles
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 4/9] at-spi2-core: new package
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (2 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 3/9] cairo: add freetype and gobject support Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 5/9] at-spi2-atk: " Hadrien Boutteville
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

The ati-spi2-core package provides Assistive Technology Service
Provider Interface (dbus core). This package is a requirement for Gtk+
3.0.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |  1 +
 package/at-spi2-core/Config.in                     | 17 +++++
 ...se-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch | 79 ++++++++++++++++++++++
 package/at-spi2-core/at-spi2-core.mk               | 24 +++++++
 4 files changed, 121 insertions(+)
 create mode 100644 package/at-spi2-core/Config.in
 create mode 100644 package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
 create mode 100644 package/at-spi2-core/at-spi2-core.mk

diff --git a/package/Config.in b/package/Config.in
index 8e1c391..1ec108a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -587,6 +587,7 @@ endmenu
 
 menu "Graphics"
 	source "package/atk/Config.in"
+	source "package/at-spi2-core/Config.in"
 	source "package/cairo/Config.in"
 	source "package/fltk/Config.in"
 	source "package/fontconfig/Config.in"
diff --git a/package/at-spi2-core/Config.in b/package/at-spi2-core/Config.in
new file mode 100644
index 0000000..8aa40c8
--- /dev/null
+++ b/package/at-spi2-core/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_AT_SPI2_CORE
+	bool "at-spi2-core"
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_DBUS
+	select BR2_PACKAGE_XLIB_LIBXI
+	select BR2_PACKAGE_XLIB_LIBXTST
+	depends on BR2_PACKAGE_XORG7
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	depends on BR2_USE_MMU # libglib2
+	help
+	  Assistive Technology Service Provider Interface (dbus core)
+
+comment "at-spi2-core needs a toolchain w/wchar, threads"
+	depends on !BR2_USE_MMU
+	depends on !BR2_PACKAGE_XORG7
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch b/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
new file mode 100644
index 0000000..fd264a4
--- /dev/null
+++ b/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
@@ -0,0 +1,79 @@
+From 03ffeeb29389b547d555a8d1d4a2b16eabfc3385 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 25 Jun 2014 19:45:28 +0200
+Subject: [PATCH] configure: use AC_CHECK_ALIGNOF() instead of custom
+ DBIND_CHECK_ALIGNOF()
+
+DBIND_CHECK_ALIGNOF() is a custom autoconf macro from at-spi2-core
+that tests the alignment required on the current platform for a given
+C type. Unfortunately, this macro uses AC_TRY_RUN(), which requires
+running a test program on the target platform, which is fundamentally
+incompatible with cross-compilation.
+
+Therefore, this patch switches the configure.ac code to use
+AC_CHECK_ALIGNOF() instead, which is available in the standard set of
+autoconf macros, and is able to test the required alignment for C
+types without using AC_TRY_RUN(). Consequently, it adjusts the
+dbind/dbind-config.h.in definitions to use the definitions created by
+the AC_CHECK_ALIGNOF() macros, which are not substituted by autoconf,
+but directly available from config.h.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac            | 18 ++++++++++--------
+ dbind/dbind-config.h.in | 16 ++++++++--------
+ 2 files changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a330453..b997301 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -196,14 +196,16 @@ AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
+ dnl find sizes & alignments
+ orig_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $DBUS_CFLAGS"
+-DBIND_CHECK_ALIGNOF(char)
+-DBIND_CHECK_ALIGNOF(dbus_bool_t)
+-DBIND_CHECK_ALIGNOF(dbus_int16_t)
+-DBIND_CHECK_ALIGNOF(dbus_int32_t)
+-DBIND_CHECK_ALIGNOF(dbus_int64_t)
+-DBIND_CHECK_ALIGNOF(double)
+-DBIND_CHECK_ALIGNOF(dbind_pointer)
+-DBIND_CHECK_ALIGNOF(dbind_struct)
++AC_CHECK_ALIGNOF(char)
++AC_CHECK_ALIGNOF(dbus_bool_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int16_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int32_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int64_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(double, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbind_pointer, [AC_INCLUDES_DEFAULT
++typedef void *dbind_pointer;])
++AC_CHECK_ALIGNOF(dbind_struct, [AC_INCLUDES_DEFAULT
++typedef struct {char s1;} dbind_struct;])
+ 
+ GTK_DOC_CHECK([1.09])
+ 
+diff --git a/dbind/dbind-config.h.in b/dbind/dbind-config.h.in
+index 3da421e..779c4c6 100644
+--- a/dbind/dbind-config.h.in
++++ b/dbind/dbind-config.h.in
+@@ -1,8 +1,8 @@
+-#define DBIND_ALIGNOF_CHAR          @DBIND_ALIGNOF_CHAR@
+-#define DBIND_ALIGNOF_DBIND_POINTER @DBIND_ALIGNOF_DBIND_POINTER@
+-#define DBIND_ALIGNOF_DBIND_STRUCT  @DBIND_ALIGNOF_DBIND_STRUCT@
+-#define DBIND_ALIGNOF_DBUS_BOOL_T   @DBIND_ALIGNOF_DBUS_BOOL_T@
+-#define DBIND_ALIGNOF_DBUS_INT16_T  @DBIND_ALIGNOF_DBUS_INT16_T@
+-#define DBIND_ALIGNOF_DBUS_INT32_T  @DBIND_ALIGNOF_DBUS_INT32_T@
+-#define DBIND_ALIGNOF_DBUS_INT64_T  @DBIND_ALIGNOF_DBUS_INT64_T@
+-#define DBIND_ALIGNOF_DOUBLE        @DBIND_ALIGNOF_DOUBLE@
++#define DBIND_ALIGNOF_CHAR          ALIGNOF_CHAR
++#define DBIND_ALIGNOF_DBIND_POINTER ALIGNOF_DBIND_POINTER
++#define DBIND_ALIGNOF_DBIND_STRUCT  ALIGNOF_DBIND_STRUCT
++#define DBIND_ALIGNOF_DBUS_BOOL_T   ALIGNOF_DBUS_BOOL_T
++#define DBIND_ALIGNOF_DBUS_INT16_T  ALIGNOF_DBUS_INT16_T
++#define DBIND_ALIGNOF_DBUS_INT32_T  ALIGNOF_DBUS_INT32_T
++#define DBIND_ALIGNOF_DBUS_INT64_T  ALIGNOF_DBUS_INT64_T
++#define DBIND_ALIGNOF_DOUBLE        ALIGNOF_DOUBLE
+-- 
+2.0.0
+
diff --git a/package/at-spi2-core/at-spi2-core.mk b/package/at-spi2-core/at-spi2-core.mk
new file mode 100644
index 0000000..73a0ad3
--- /dev/null
+++ b/package/at-spi2-core/at-spi2-core.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# at-spi2-core
+#
+################################################################################
+
+AT_SPI2_CORE_VERSION_MAJOR = 2.10
+AT_SPI2_CORE_VERSION_MINOR = 2
+AT_SPI2_CORE_VERSION = $(AT_SPI2_CORE_VERSION_MAJOR).$(AT_SPI2_CORE_VERSION_MINOR)
+AT_SPI2_CORE_SOURCE = at-spi2-core-$(AT_SPI2_CORE_VERSION).tar.xz
+AT_SPI2_CORE_SITE = http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/$(AT_SPI2_CORE_VERSION_MAJOR)
+AT_SPI2_CORE_LICENSE = LGPLv2+
+AT_SPI2_CORE_LICENSE_FILES = COPYING
+AT_SPI2_CORE_INSTALL_STAGING = YES
+AT_SPI2_CORE_INSTALL_TARGET = YES
+AT_SPI2_CORE_AUTORECONF = YES
+
+AT_SPI2_CORE_CONF_OPT = --disable-introspection \
+			--disable-xevie
+
+AT_SPI2_CORE_DEPENDENCIES = host-pkgconf libglib2 dbus xlib_libXi xlib_libXtst \
+		host-intltool
+
+$(eval $(autotools-package))
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 5/9] at-spi2-atk: new package
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (3 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 4/9] at-spi2-core: new package Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 6/9] libgtk3: " Hadrien Boutteville
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

The at-spi2-atk package provides AT-SPI 2 Toolkit Bridge. This is a
requirement for Gtk+ 3.0.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                  |  1 +
 package/at-spi2-atk/Config.in      | 16 ++++++++++++++++
 package/at-spi2-atk/at-spi2-atk.mk | 19 +++++++++++++++++++
 3 files changed, 36 insertions(+)
 create mode 100644 package/at-spi2-atk/Config.in
 create mode 100644 package/at-spi2-atk/at-spi2-atk.mk

diff --git a/package/Config.in b/package/Config.in
index 1ec108a..b700ed1 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -588,6 +588,7 @@ endmenu
 menu "Graphics"
 	source "package/atk/Config.in"
 	source "package/at-spi2-core/Config.in"
+	source "package/at-spi2-atk/Config.in"
 	source "package/cairo/Config.in"
 	source "package/fltk/Config.in"
 	source "package/fontconfig/Config.in"
diff --git a/package/at-spi2-atk/Config.in b/package/at-spi2-atk/Config.in
new file mode 100644
index 0000000..828db71
--- /dev/null
+++ b/package/at-spi2-atk/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_AT_SPI2_ATK
+	bool "at-spi2-atk"
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_DBUS
+	select BR2_PACKAGE_ATK
+	select BR2_PACKAGE_AT_SPI2_CORE
+	depends on BR2_PACKAGE_XORG7 # at-spi2-core
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	depends on BR2_USE_MMU # libglib2
+	help
+	  AT-SPI 2 Toolkit Bridge
+
+comment "at-spi2-atk needs a toolchain w/wchar, threads"
+	depends on !BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/at-spi2-atk/at-spi2-atk.mk b/package/at-spi2-atk/at-spi2-atk.mk
new file mode 100644
index 0000000..747eea4
--- /dev/null
+++ b/package/at-spi2-atk/at-spi2-atk.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# at-spi2-atk
+#
+################################################################################
+
+AT_SPI2_ATK_VERSION_MAJOR = 2.10
+AT_SPI2_ATK_VERSION_MINOR = 2
+AT_SPI2_ATK_VERSION = $(AT_SPI2_ATK_VERSION_MAJOR).$(AT_SPI2_ATK_VERSION_MINOR)
+AT_SPI2_ATK_SOURCE = at-spi2-atk-$(AT_SPI2_ATK_VERSION).tar.xz
+AT_SPI2_ATK_SITE = http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/$(AT_SPI2_ATK_VERSION_MAJOR)
+AT_SPI2_ATK_LICENSE = LGPLv2+
+AT_SPI2_ATK_LICENSE_FILES = COPYING
+AT_SPI2_ATK_INSTALL_STAGING = YES
+AT_SPI2_ATK_INSTALL_TARGET = YES
+
+AT_SPI2_ATK_DEPENDENCIES = host-pkgconf libglib2 dbus atk at-spi2-core
+
+$(eval $(autotools-package))
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 6/9] libgtk3: new package
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (4 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 5/9] at-spi2-atk: " Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 17:34   ` Eric Le Bihan
  2014-07-08 13:57 ` [Buildroot] [RFC 7/9] webkit: bump to version 2.4.3 Hadrien Boutteville
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |   1 +
 package/libgtk3/Config.in                          |  47 ++++++
 package/libgtk3/libgtk3-0001-no-gtk-doc.patch      |  11 ++
 .../libgtk3-0002-add-file-introspection-m4.patch   | 100 +++++++++++
 package/libgtk3/libgtk3.mk                         | 184 +++++++++++++++++++++
 5 files changed, 343 insertions(+)
 create mode 100644 package/libgtk3/Config.in
 create mode 100644 package/libgtk3/libgtk3-0001-no-gtk-doc.patch
 create mode 100644 package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
 create mode 100644 package/libgtk3/libgtk3.mk

diff --git a/package/Config.in b/package/Config.in
index b700ed1..caa3fa6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -612,6 +612,7 @@ menu "Graphics"
 	source "package/libgeotiff/Config.in"
 	source "package/libglade/Config.in"
 	source "package/libgtk2/Config.in"
+	source "package/libgtk3/Config.in"
 	source "package/libpng/Config.in"
 	source "package/libqrencode/Config.in"
 	source "package/libraw/Config.in"
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
new file mode 100644
index 0000000..4a2eb82
--- /dev/null
+++ b/package/libgtk3/Config.in
@@ -0,0 +1,47 @@
+config BR2_PACKAGE_LIBGTK3
+	bool "libgtk3"
+	select BR2_PACKAGE_ATK
+	select BR2_PACKAGE_CAIRO
+	select BR2_PACKAGE_CAIRO_PS
+	select BR2_PACKAGE_CAIRO_PDF
+	select BR2_PACKAGE_CAIRO_SVG
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_PANGO
+	select BR2_PACKAGE_GDK_PIXBUF
+	select BR2_PACKAGE_FONTCONFIG
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXRENDER
+	select BR2_PACKAGE_XLIB_LIBXI # required for building X11 backend
+	select BR2_PACKAGE_AT_SPI2_ATK
+	depends on BR2_PACKAGE_XORG7
+	depends on BR2_USE_WCHAR # glib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
+	depends on BR2_USE_MMU # glib2
+	depends on BR2_INSTALL_LIBSTDCPP # pango
+	help
+	  The GTK+ version 3 graphical user interface library
+
+	  http://www.gtk.org/
+
+if BR2_PACKAGE_LIBGTK3
+
+config BR2_PACKAGE_LIBGTK3_DEMO
+	bool "Install libgtk3 demo program"
+	help
+	  The GTK+ source base contains demo programs. This
+	  option allows to install this program to the target.
+
+config BR2_PACKAGE_LIBGTK3_TESTS
+	bool "Install libgtk3 tests"
+	help
+	  The GTK+ source base contains tests. This option
+	  allows to install them to the target.
+
+endif
+
+comment "libgtk3 needs a toolchain w/ wchar, threads, C++"
+	depends on BR2_USE_MMU
+	depends on BR2_PACKAGE_XORG7
+	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
+		!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk3/libgtk3-0001-no-gtk-doc.patch b/package/libgtk3/libgtk3-0001-no-gtk-doc.patch
new file mode 100644
index 0000000..0c12ee4
--- /dev/null
+++ b/package/libgtk3/libgtk3-0001-no-gtk-doc.patch
@@ -0,0 +1,11 @@
+--- a/gtk-doc.make
++++ b/gtk-doc.make
+@@ -267,7 +267,7 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
++if ENABLE_GTK_DOC
+ dist-check-gtkdoc: docs
+ else
+ dist-check-gtkdoc:
diff --git a/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch b/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
new file mode 100644
index 0000000..3cd0569
--- /dev/null
+++ b/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
@@ -0,0 +1,100 @@
+diff -Naur gtk+-3.12.2.orig/m4/introspection.m4 gtk+-3.12.2/m4/introspection.m4
+--- gtk+-3.12.2.orig/m4/introspection.m4	1970-01-01 01:00:00.000000000 +0100
++++ gtk+-3.12.2/m4/introspection.m4	2014-06-17 17:26:34.731847165 +0200
+@@ -0,0 +1,96 @@
++dnl -*- mode: autoconf -*-
++dnl Copyright 2009 Johan Dahlin
++dnl
++dnl This file is free software; the author(s) gives unlimited
++dnl permission to copy and/or distribute it, with or without
++dnl modifications, as long as this notice is preserved.
++dnl
++
++# serial 1
++
++m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
++[
++    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
++    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
++    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
++
++    dnl enable/disable introspection
++    m4_if([$2], [require],
++    [dnl
++        enable_introspection=yes
++    ],[dnl
++        AC_ARG_ENABLE(introspection,
++                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
++                                 [Enable introspection for this build]),, 
++                                 [enable_introspection=auto])
++    ])dnl
++
++    AC_MSG_CHECKING([for gobject-introspection])
++
++    dnl presence/version checking
++    AS_CASE([$enable_introspection],
++    [no], [dnl
++        found_introspection="no (disabled, use --enable-introspection to enable)"
++    ],dnl
++    [yes],[dnl
++        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
++                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
++        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
++                         found_introspection=yes,
++                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
++    ],dnl
++    [auto],[dnl
++        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
++	dnl Canonicalize enable_introspection
++	enable_introspection=$found_introspection
++    ],dnl
++    [dnl	
++        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
++    ])dnl
++
++    AC_MSG_RESULT([$found_introspection])
++
++    INTROSPECTION_SCANNER=
++    INTROSPECTION_COMPILER=
++    INTROSPECTION_GENERATE=
++    INTROSPECTION_GIRDIR=
++    INTROSPECTION_TYPELIBDIR=
++    if test "x$found_introspection" = "xyes"; then
++       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
++       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
++       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
++       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
++       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
++       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
++       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
++    fi
++    AC_SUBST(INTROSPECTION_SCANNER)
++    AC_SUBST(INTROSPECTION_COMPILER)
++    AC_SUBST(INTROSPECTION_GENERATE)
++    AC_SUBST(INTROSPECTION_GIRDIR)
++    AC_SUBST(INTROSPECTION_TYPELIBDIR)
++    AC_SUBST(INTROSPECTION_CFLAGS)
++    AC_SUBST(INTROSPECTION_LIBS)
++    AC_SUBST(INTROSPECTION_MAKEFILE)
++
++    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
++])
++
++
++dnl Usage:
++dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
++
++AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
++[
++  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
++])
++
++dnl Usage:
++dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
++
++
++AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
++[
++  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
++])
diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk
new file mode 100644
index 0000000..0b61e25
--- /dev/null
+++ b/package/libgtk3/libgtk3.mk
@@ -0,0 +1,184 @@
+################################################################################
+#
+# libgtk3
+#
+################################################################################
+
+LIBGTK3_VERSION_MAJOR = 3.12
+LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2
+
+LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
+LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
+LIBGTK3_LICENSE = LGPLv2+
+LIBGTK3_LICENSE_FILES = COPYING
+LIBGTK3_INSTALL_STAGING = YES
+LIBGTK3_INSTALL_TARGET = YES
+
+LIBGTK3_AUTORECONF = YES
+
+LIBGTK3_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
+		glib_cv_uscore=no \
+		ac_cv_func_strtod=yes \
+		ac_fsusage_space=yes \
+		fu_cv_sys_stat_statfs2_bsize=yes \
+		ac_cv_func_closedir_void=no \
+		ac_cv_func_getloadavg=no \
+		ac_cv_lib_util_getloadavg=no \
+		ac_cv_lib_getloadavg_getloadavg=no \
+		ac_cv_func_getgroups=yes \
+		ac_cv_func_getgroups_works=yes \
+		ac_cv_func_chown_works=yes \
+		ac_cv_have_decl_euidaccess=no \
+		ac_cv_func_euidaccess=no \
+		ac_cv_have_decl_strnlen=yes \
+		ac_cv_func_strnlen_working=yes \
+		ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+		ac_cv_func_lstat_empty_string_bug=no \
+		ac_cv_func_stat_empty_string_bug=no \
+		vb_cv_func_rename_trailing_slash_bug=no \
+		ac_cv_have_decl_nanosleep=yes \
+		jm_cv_func_nanosleep_works=yes \
+		gl_cv_func_working_utimes=yes \
+		ac_cv_func_utime_null=yes \
+		ac_cv_have_decl_strerror_r=yes \
+		ac_cv_func_strerror_r_char_p=no \
+		jm_cv_func_svid_putenv=yes \
+		ac_cv_func_getcwd_null=yes \
+		ac_cv_func_getdelim=yes \
+		ac_cv_func_mkstemp=yes \
+		utils_cv_func_mkstemp_limitations=no \
+		utils_cv_func_mkdir_trailing_slash_bug=no \
+		jm_cv_func_gettimeofday_clobber=no \
+		gl_cv_func_working_readdir=yes \
+		jm_ac_cv_func_link_follows_symlink=no \
+		utils_cv_localtime_cache=no \
+		ac_cv_struct_st_mtim_nsec=no \
+		gl_cv_func_tzset_clobber=no \
+		gl_cv_func_getcwd_null=yes \
+		gl_cv_func_getcwd_path_max=yes \
+		ac_cv_func_fnmatch_gnu=yes \
+		am_getline_needs_run_time_check=no \
+		am_cv_func_working_getline=yes \
+		gl_cv_func_mkdir_trailing_slash_bug=no \
+		gl_cv_func_mkstemp_limitations=no \
+		ac_cv_func_working_mktime=yes \
+		jm_cv_func_working_re_compile_pattern=yes \
+		ac_use_included_regex=no gl_cv_c_restrict=no \
+		ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
+		ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
+		ac_cv_prog_F77=no \
+		ac_cv_path_CUPS_CONFIG=no
+
+LIBGTK3_CONF_OPT = --disable-glibtest \
+		--enable-explicit-deps=no \
+		--enable-gtk2-dependency \
+		--disable-debug
+
+LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 libglib2 cairo pango atk \
+		gdk-pixbuf
+
+# Xorg dependencies
+LIBGTK3_CONF_OPT += --with-x \
+	--enable-x11-backend \
+	--x-includes=$(STAGING_DIR)/usr/include/X11 \
+	--x-libraries=$(STAGING_DIR)/usr/lib
+LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender \
+		xlib_libXi at-spi2-atk
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
+LIBGTK3_CONF_OPT += --enable-xinerama
+LIBGTK3_DEPENDENCIES += xlib_libXinerama
+else
+LIBGTK3_CONF_OPT += --disable-xinerama
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
+LIBGTK3_CONF_OPT += --enable-xrandr
+LIBGTK3_DEPENDENCIES += xlib_libXrandr
+else
+LIBGTK3_CONF_OPT += --disable-xrandr
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
+LIBGTK3_DEPENDENCIES += xlib_libXcursor
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
+LIBGTK3_CONF_OPT += --enable-xfixes
+LIBGTK3_DEPENDENCIES += xlib_libXfixes
+else
+LIBGTK3_CONF_OPT += --disable-xfixes
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
+LIBGTK3_CONF_OPT += --enable-xcomposite
+LIBGTK3_DEPENDENCIES += xlib_libXcomposite
+else
+LIBGTK3_CONF_OPT += --disable-xcomposite
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
+LIBGTK3_CONF_OPT += --enable-xdamage
+LIBGTK3_DEPENDENCIES += xlib_libXdamage
+else
+LIBGTK3_CONF_OPT += --disable-xdamage
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
+LIBGTK3_CONF_OPT += --enable-xkb
+LIBGTK3_DEPENDENCIES += xlib_libxkbfile
+endif
+
+ifeq ($(BR2_PACKAGE_CUPS),y)
+LIBGTK3_CONF_OPT += --enable-cups
+LIBGTK3_DEPENDENCIES += cups
+else
+LIBGTK3_CONF_OPT += --disable-cups
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),)
+define LIBGTK3_POST_INSTALL_TWEAKS
+	rm -rf $(TARGET_DIR)/usr/bin/gtk3-demo \
+		$(TARGET_DIR)/usr/bin/gtk3-demo-application 
+endef
+
+LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_POST_INSTALL_TWEAKS
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y)
+LIBGTK3_DEPENDENCIES += --enable-installed-tests
+else
+LIBGTK3_CONF_OPT += --disable-installed-tests
+endif
+
+# We do not build a full version of libgtk3 for the host, because that
+# requires compiling Cairo, Pango, ATK and X.org for the
+# host. Therefore, we patch it to remove dependencies, and we hack the
+# build to only build gdk-pixbuf-from-source and
+# gtk-update-icon-cache, which are the host tools needed to build Gtk
+# for the target.
+
+HOST_LIBGTK3_DEPENDENCIES = host-libglib2 host-libpng host-gdk-pixbuf
+
+HOST_LIBGTK3_CFLAGS = $(shell $(HOST_DIR)/usr/bin/pkg-config \
+	--cflags --libs gdk-pixbuf-2.0)
+
+define HOST_LIBGTK3_CONFIGURE_CMDS
+	echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h
+	echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h
+	echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h
+endef
+
+define HOST_LIBGTK3_BUILD_CMDS
+	$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+		$(@D)/gtk/updateiconcache.c \
+		$(HOST_LIBGTK3_CFLAGS) \
+		-o $(@D)/gtk/gtk-update-icon-cache
+endef
+
+define HOST_LIBGTK3_INSTALL_CMDS
+	cp $(@D)/gtk/gtk-update-icon-cache $(HOST_DIR)/usr/bin
+endef
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 7/9] webkit: bump to version 2.4.3
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (5 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 6/9] libgtk3: " Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 8/9] libsoup: add libsoup-gnome support Hadrien Boutteville
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

WebKit needs at least GCC in version 4.8 to build:
https://bugs.webkit.org/show_bug.cgi?id=127103
The package can't depends on a specific GCC version with external
toolchains so add a comment in the help menu.

Remove all patches because they are applied upstream in this version.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/webkit/Config.in                           |   16 +-
 ...ebkit-0001-build-fix-for-32-bit-autotools.patch |   34 -
 .../webkit-0002-build-fix-for-gtklauncher.patch    |   51 -
 .../webkit/webkit-0003-detect-harfbuzz-icu.patch   |   28 -
 package/webkit/webkit-0004-disable-docrebase.patch |   27 -
 package/webkit/webkit-0005-disable-tests.patch     |   80 --
 package/webkit/webkit-0006-execinfo_h.patch        |   20 -
 package/webkit/webkit-0007-mips-dfg.patch          | 1490 --------------------
 package/webkit/webkit-0008-support-bison-3.0.patch |   22 -
 package/webkit/webkit.mk                           |   67 +-
 10 files changed, 38 insertions(+), 1797 deletions(-)
 delete mode 100644 package/webkit/webkit-0001-build-fix-for-32-bit-autotools.patch
 delete mode 100644 package/webkit/webkit-0002-build-fix-for-gtklauncher.patch
 delete mode 100644 package/webkit/webkit-0003-detect-harfbuzz-icu.patch
 delete mode 100644 package/webkit/webkit-0004-disable-docrebase.patch
 delete mode 100644 package/webkit/webkit-0005-disable-tests.patch
 delete mode 100644 package/webkit/webkit-0006-execinfo_h.patch
 delete mode 100644 package/webkit/webkit-0007-mips-dfg.patch
 delete mode 100644 package/webkit/webkit-0008-support-bison-3.0.patch

diff --git a/package/webkit/Config.in b/package/webkit/Config.in
index c86eb94..3df760e 100644
--- a/package/webkit/Config.in
+++ b/package/webkit/Config.in
@@ -14,7 +14,7 @@ config BR2_PACKAGE_WEBKIT
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR # enchant -> libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # enchant -> libglib2; icu
-	depends on BR2_PACKAGE_LIBGTK2
+	depends on BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_BINFMT_FLAT # icu
 	select BR2_PACKAGE_CAIRO_PNG
@@ -31,8 +31,10 @@ config BR2_PACKAGE_WEBKIT
 	select BR2_PACKAGE_SQLITE
 	select BR2_PACKAGE_WEBP
 	select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_XORG7
-	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_HAS_LIBGL
-	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_HAS_LIBGL
+	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_HAS_LIBGL || \
+		(BR2_PACKAGE_HAS_LIBGLES && BR2_PACKAGE_HAS_LIBEGL)
+	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_HAS_LIBGL || \
+		(BR2_PACKAGE_HAS_LIBGLES && BR2_PACKAGE_HAS_LIBEGL)
 	help
 	  WebKit is an open source, standards compliant web browser engine.
 
@@ -41,7 +43,9 @@ config BR2_PACKAGE_WEBKIT
 
 	  http://webkit.org/
 
-comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
+	  WebKit needs at least GCC 4.8 to build.
+
+comment "webkit needs libgtk2 or libgtk3 and a toolchain w/ C++, wchar, threads"
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
-	depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !(BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3) || \
+		!BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/webkit/webkit-0001-build-fix-for-32-bit-autotools.patch b/package/webkit/webkit-0001-build-fix-for-32-bit-autotools.patch
deleted file mode 100644
index d7765ea..0000000
--- a/package/webkit/webkit-0001-build-fix-for-32-bit-autotools.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Add missing symbol for WebCore::TextIterator::getLocationAndLengthFromRange
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From f5bb58f9096061f00c948e668335811d364ba360 Mon Sep 17 00:00:00 2001
-From: "kov at webkit.org" <kov@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Thu, 7 Feb 2013 13:48:46 +0000
-Subject: [PATCH] Unreviewed build fix after r141196 for 32 bits autotools.
-
-* Source/autotools/symbols.filter: restore 32 bits version of the
-WebCore::TextIterator::getLocationAndLengthFromRange(WebCore::Node*,
-WebCore::Range const*, unsigned int&, unsigned int&) symbol.
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk at 142105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- ChangeLog                       | 8 ++++++++
- Source/autotools/symbols.filter | 1 +
- 2 files changed, 9 insertions(+)
-
-diff --git a/Source/autotools/symbols.filter b/Source/autotools/symbols.filter
-index 9d730b3..2edefaf 100644
---- a/Source/autotools/symbols.filter
-+++ b/Source/autotools/symbols.filter
-@@ -57,6 +57,7 @@ _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELj0EEE;
- _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELm0EEE;
- _ZN7WebCore11MemoryCache14resourceForURLERKNS_4KURLE;
- _ZN7WebCore12TextIterator26rangeFromLocationAndLengthEPNS_13ContainerNodeEiib;
-+_ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERjS6_;
- _ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERmS6_;
- _ZN7WebCore12PrintContext20pageNumberForElementEPNS_7ElementERKNS_9FloatSizeE;
- _ZN7WebCore13createWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_4NodeE;
--- 
-1.8.3.2
-
diff --git a/package/webkit/webkit-0002-build-fix-for-gtklauncher.patch b/package/webkit/webkit-0002-build-fix-for-gtklauncher.patch
deleted file mode 100644
index 9a840b6..0000000
--- a/package/webkit/webkit-0002-build-fix-for-gtklauncher.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Make gstreamer support conditional
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From f1055f61bce46eccf8dc0aa017113a08d3d71944 Mon Sep 17 00:00:00 2001
-From: "commit-queue at webkit.org"
- <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Fri, 15 Mar 2013 07:13:51 +0000
-Subject: [PATCH] Build fix for Tools/GtkLauncher/Programs_GtkLauncher-main.o
- if gstreamer is not installed https://bugs.webkit.org/show_bug.cgi?id=112394
-
-Patch by Tobias Mueller <tobiasmue@gnome.org> on 2013-03-15
-Reviewed by Philippe Normand.
-
-* GtkLauncher/main.c:
-(main): Guard using the gstreamer function with #ifdef WTF_USE_GSTREAMER
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk at 145881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- Tools/ChangeLog          | 10 ++++++++++
- Tools/GtkLauncher/main.c |  5 ++++-
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/Tools/GtkLauncher/main.c b/Tools/GtkLauncher/main.c
-index 32baf4a..84c8833 100644
---- a/Tools/GtkLauncher/main.c
-+++ b/Tools/GtkLauncher/main.c
-@@ -28,7 +28,9 @@
- #include "autotoolsconfig.h"
- #include "LauncherInspectorWindow.h"
- #include <errno.h>
-+#ifdef WTF_USE_GSTREAMER
- #include <gst/gst.h>
-+#endif
- #include <gtk/gtk.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -489,8 +491,9 @@ int main(int argc, char* argv[])
-     GOptionContext *context = g_option_context_new(0);
-     g_option_context_add_main_entries(context, commandLineOptions, 0);
-     g_option_context_add_group(context, gtk_get_option_group(TRUE));
-+#ifdef WTF_USE_GSTREAMER
-     g_option_context_add_group(context, gst_init_get_option_group());
--
-+#endif
-     webkitSettings = webkit_web_settings_new();
-     g_object_set(webkitSettings, "enable-developer-extras", TRUE, NULL);
-     if (!addWebSettingsGroupToContext(context, webkitSettings)) {
--- 
-1.8.3.2
-
diff --git a/package/webkit/webkit-0003-detect-harfbuzz-icu.patch b/package/webkit/webkit-0003-detect-harfbuzz-icu.patch
deleted file mode 100644
index dc93c67..0000000
--- a/package/webkit/webkit-0003-detect-harfbuzz-icu.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-harfbuzz-icu detections based on the following upstream commits
-
-- 5f3ae29ffb29c499c1825578ba7f3ffcbf1aa8b9
-- ad2a23ec44b692bde43a13b658990770caa8dfc5
-- 22b4786377142424bfb6562ff029997acd0846d1
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/configure.ac
-===================================================================
---- webkit-1.11.5.orig/configure.ac
-+++ webkit-1.11.5/configure.ac
-@@ -938,6 +938,15 @@ PKG_CHECK_MODULES([FREETYPE],
-                   freetype2 >= $FREETYPE2_REQUIRED_VERSION
-                   harfbuzz])
- fi
-+# HarfBuzz 0.9.18 splits harbuzz-icu into a separate library.
-+# Since we support earlier HarfBuzz versions we keep this conditional for now.
-+m4_define([harfbuzz_required_version], [0.9.7])
-+if $PKG_CONFIG --atleast-version 0.9.18 harfbuzz; then
-+	PKG_CHECK_MODULES([HARFBUZZ_ICU], [harfbuzz-icu >= $harfbuzz_required_version])
-+	FREETYPE_CFLAGS+=" $HARFBUZZ_ICU_CFLAGS"
-+	FREETYPE_LIBS+=" $HARFBUZZ_ICU_LIBS"
-+fi
-+
- AC_SUBST([FREETYPE_CFLAGS])
- AC_SUBST([FREETYPE_LIBS])
- 
diff --git a/package/webkit/webkit-0004-disable-docrebase.patch b/package/webkit/webkit-0004-disable-docrebase.patch
deleted file mode 100644
index 2692d61..0000000
--- a/package/webkit/webkit-0004-disable-docrebase.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-This patch prevents documentation from being rebased or installed. This
-prevents an error when gtk-doc --rebase is called.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/Tools/GNUmakefile.am
-===================================================================
---- webkit-1.11.5.orig/Tools/GNUmakefile.am
-+++ webkit-1.11.5/Tools/GNUmakefile.am
-@@ -308,6 +308,8 @@ EXTRA_DIST += \
- 	Tools/Scripts/webkit-build-directory \
- 	Tools/Scripts/webkitdirs.pm
- 
-+if ENABLE_GTK_DOC
-+
- docs: docs-build.stamp
- .PHONY : docs
- DISTCLEANFILES += docs-build.stamp
-@@ -412,7 +414,6 @@ if ENABLE_WEBKIT2
- 	rm -rf $${installdir}
- endif
- 
--if ENABLE_GTK_DOC
- all: docs-build.stamp
- endif
- 
diff --git a/package/webkit/webkit-0005-disable-tests.patch b/package/webkit/webkit-0005-disable-tests.patch
deleted file mode 100644
index 6fa6daa..0000000
--- a/package/webkit/webkit-0005-disable-tests.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-This prevents the Webkit test suites from being built.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-----
-Index: webkit-1.9.6/GNUmakefile.am
-===================================================================
---- webkit-1.9.6.orig/GNUmakefile.am	2012-08-06 03:17:24.000000000 -0500
-+++ webkit-1.9.6/GNUmakefile.am	2013-05-28 10:08:53.645129501 -0500
-@@ -282,11 +282,14 @@
- include Tools/DumpRenderTree/gtk/GNUmakefile.ImageDiff.am
- 
- include Source/WebKit2/GNUmakefile.am
--include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
- include Tools/MiniBrowser/gtk/GNUmakefile.am
-+
-+if ENABLE_TESTS
-+include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
- include Tools/WebKitTestRunner/GNUmakefile.am
- include Source/ThirdParty/gtest/GNUmakefile.am
- include Tools/TestWebKitAPI/GNUmakefile.am
-+endif # ENABLE_TESTS
- # [GTK] Refactor the translations now that we have webkit2
- # https://bugs.webkit.org/show_bug.cgi?id=55153
- 
-Index: webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am
-===================================================================
---- webkit-1.9.6.orig/Source/WebKit/gtk/GNUmakefile.am	2012-07-19 05:02:29.000000000 -0500
-+++ webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am	2013-05-28 10:09:49.277130516 -0500
-@@ -413,6 +413,7 @@
- dist_resources_DATA = \
- 	$(shell ls $(srcdir)/Source/WebKit/gtk/resources/*.html)
- 
-+if ENABLE_TESTS
- # Build unit tests
- webkit_tests_cflags = \
- 	-fno-strict-aliasing \
-@@ -613,6 +614,8 @@
- Programs_unittests_testcopyandpaste_LDADD = $(webkit_tests_ldadd)
- Programs_unittests_testcopyandpaste_LDFLAGS = $(webkit_tests_ldflags)
- 
-+endif # ENABLE_TESTS
-+
- # Project-wide clean rules
- # Files that will be cleaned
- CLEANFILES += \
-Index: webkit-1.9.6/configure.ac
-===================================================================
---- webkit-1.9.6.orig/configure.ac	2012-08-06 08:45:10.000000000 -0500
-+++ webkit-1.9.6/configure.ac	2013-05-28 10:07:55.817128445 -0500
-@@ -516,6 +516,14 @@
- AC_SUBST(CAIRO_CFLAGS)
- AC_SUBST(CAIRO_LIBS)
- 
-+# check wheter to build tests
-+AC_MSG_CHECKING([wheter to build tests])
-+AC_ARG_ENABLE(tests,
-+              AC_HELP_STRING([--enable-tests],
-+                             [turn on tests [default=no]]),
-+              [],[enable_debug="no"])
-+AC_MSG_RESULT([$enable_tests])
-+
- # check whether to build with debugging enabled
- AC_MSG_CHECKING([whether to do a debug build])
- AC_ARG_ENABLE(debug,
-@@ -1423,6 +1431,7 @@
- AM_CONDITIONAL([USE_FARSTREAM], [test "$have_farstream" = "yes"])
- 
- # WebKit feature conditionals
-+AM_CONDITIONAL([ENABLE_TESTS],[test "$enable_tests" = "yes"])
- AM_CONDITIONAL([ENABLE_DEBUG],[test "$enable_debug_features" = "yes"])
- AM_CONDITIONAL([ENABLE_UNSTABLE_FEATURES],[test "$enable_unstable_features" = "yes"])
- AM_CONDITIONAL([ENABLE_WEBGL],[test "$enable_webgl" = "yes"])
-@@ -1534,6 +1543,7 @@
- WebKit was configured with the following options:
- 
- Build configuration:
-+ Enable tests (slow)                                      : $enable_tests
-  Enable debugging (slow)                                  : $enable_debug
-  Compile with debug symbols (slow)                        : $enable_debug_symbols
-  Enable debug features (slow)                             : $enable_debug_features
diff --git a/package/webkit/webkit-0006-execinfo_h.patch b/package/webkit/webkit-0006-execinfo_h.patch
deleted file mode 100644
index f5508a1..0000000
--- a/package/webkit/webkit-0006-execinfo_h.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Fixes uclibc build as uclibc does not include backtrace functionality
-
-Signed-of-by: Spenser Gilliland <spenser@gillilanding.com>
-Signed-of-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
-===================================================================
---- webkit-1.11.5.orig/Source/WTF/wtf/Assertions.cpp
-+++ webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
-@@ -61,8 +61,10 @@
- #if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
- #include <cxxabi.h>
- #include <dlfcn.h>
-+#if !defined(__UCLIBC__)
- #include <execinfo.h>
- #endif
-+#endif
- 
- #if OS(ANDROID)
- #include "android/log.h"
diff --git a/package/webkit/webkit-0007-mips-dfg.patch b/package/webkit/webkit-0007-mips-dfg.patch
deleted file mode 100644
index 3925951..0000000
--- a/package/webkit/webkit-0007-mips-dfg.patch
+++ /dev/null
@@ -1,1490 +0,0 @@
-Upstream patch for DFG implementation for MIPS
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From c921d19863ccf66bdd0ffa5d38eaf05efab6b136 Mon Sep 17 00:00:00 2001
-From: "commit-queue at webkit.org"
- <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Mon, 18 Feb 2013 19:25:23 +0000
-Subject: [PATCH] MIPS DFG implementation.
- https://bugs.webkit.org/show_bug.cgi?id=101328
-
-Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-02-18
-Reviewed by Oliver Hunt.
-
-DFG implementation for MIPS.
-
-Source/JavaScriptCore:
-
-* assembler/MIPSAssembler.h:
-(JSC::MIPSAssembler::MIPSAssembler):
-(JSC::MIPSAssembler::sllv):
-(JSC::MIPSAssembler::movd):
-(MIPSAssembler):
-(JSC::MIPSAssembler::negd):
-(JSC::MIPSAssembler::labelForWatchpoint):
-(JSC::MIPSAssembler::label):
-(JSC::MIPSAssembler::vmov):
-(JSC::MIPSAssembler::linkDirectJump):
-(JSC::MIPSAssembler::maxJumpReplacementSize):
-(JSC::MIPSAssembler::revertJumpToMove):
-(JSC::MIPSAssembler::replaceWithJump):
-* assembler/MacroAssembler.h:
-(MacroAssembler):
-(JSC::MacroAssembler::poke):
-* assembler/MacroAssemblerMIPS.h:
-(JSC::MacroAssemblerMIPS::add32):
-(MacroAssemblerMIPS):
-(JSC::MacroAssemblerMIPS::and32):
-(JSC::MacroAssemblerMIPS::lshift32):
-(JSC::MacroAssemblerMIPS::mul32):
-(JSC::MacroAssemblerMIPS::or32):
-(JSC::MacroAssemblerMIPS::rshift32):
-(JSC::MacroAssemblerMIPS::urshift32):
-(JSC::MacroAssemblerMIPS::sub32):
-(JSC::MacroAssemblerMIPS::xor32):
-(JSC::MacroAssemblerMIPS::store32):
-(JSC::MacroAssemblerMIPS::jump):
-(JSC::MacroAssemblerMIPS::branchAdd32):
-(JSC::MacroAssemblerMIPS::branchMul32):
-(JSC::MacroAssemblerMIPS::branchSub32):
-(JSC::MacroAssemblerMIPS::branchNeg32):
-(JSC::MacroAssemblerMIPS::call):
-(JSC::MacroAssemblerMIPS::loadDouble):
-(JSC::MacroAssemblerMIPS::moveDouble):
-(JSC::MacroAssemblerMIPS::swapDouble):
-(JSC::MacroAssemblerMIPS::subDouble):
-(JSC::MacroAssemblerMIPS::mulDouble):
-(JSC::MacroAssemblerMIPS::divDouble):
-(JSC::MacroAssemblerMIPS::negateDouble):
-(JSC::MacroAssemblerMIPS::branchEqual):
-(JSC::MacroAssemblerMIPS::branchNotEqual):
-(JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
-(JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32):
-(JSC::MacroAssemblerMIPS::truncateDoubleToInt32):
-(JSC::MacroAssemblerMIPS::truncateDoubleToUint32):
-(JSC::MacroAssemblerMIPS::branchDoubleNonZero):
-(JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
-(JSC::MacroAssemblerMIPS::invert):
-(JSC::MacroAssemblerMIPS::replaceWithJump):
-(JSC::MacroAssemblerMIPS::maxJumpReplacementSize):
-* dfg/DFGAssemblyHelpers.h:
-(AssemblyHelpers):
-(JSC::DFG::AssemblyHelpers::preserveReturnAddressAfterCall):
-(JSC::DFG::AssemblyHelpers::restoreReturnAddressBeforeReturn):
-(JSC::DFG::AssemblyHelpers::debugCall):
-* dfg/DFGCCallHelpers.h:
-(CCallHelpers):
-(JSC::DFG::CCallHelpers::setupArguments):
-(JSC::DFG::CCallHelpers::setupArgumentsWithExecState):
-* dfg/DFGFPRInfo.h:
-(DFG):
-(FPRInfo):
-(JSC::DFG::FPRInfo::toRegister):
-(JSC::DFG::FPRInfo::toIndex):
-(JSC::DFG::FPRInfo::debugName):
-* dfg/DFGGPRInfo.h:
-(DFG):
-(GPRInfo):
-(JSC::DFG::GPRInfo::toRegister):
-(JSC::DFG::GPRInfo::toIndex):
-(JSC::DFG::GPRInfo::debugName):
-* dfg/DFGSpeculativeJIT.h:
-(SpeculativeJIT):
-* jit/JSInterfaceJIT.h:
-(JSInterfaceJIT):
-* runtime/JSGlobalData.h:
-(JSC::ScratchBuffer::allocationSize):
-(ScratchBuffer):
-
-Source/WTF:
-
-* wtf/Platform.h:
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk at 143247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- Source/JavaScriptCore/ChangeLog                    |  90 ++++
- Source/JavaScriptCore/assembler/MIPSAssembler.h    | 109 ++++-
- Source/JavaScriptCore/assembler/MacroAssembler.h   |   7 +
- .../JavaScriptCore/assembler/MacroAssemblerMIPS.h  | 480 +++++++++++++++++++--
- Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h     |  19 +-
- Source/JavaScriptCore/dfg/DFGCCallHelpers.h        |  92 ++--
- Source/JavaScriptCore/dfg/DFGFPRInfo.h             |  68 +++
- Source/JavaScriptCore/dfg/DFGGPRInfo.h             |  67 +++
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h      |   4 +-
- Source/JavaScriptCore/jit/JSInterfaceJIT.h         |   4 +
- Source/JavaScriptCore/runtime/JSGlobalData.h       |   6 +-
- Source/WTF/ChangeLog                               |  11 +
- Source/WTF/wtf/Platform.h                          |   4 +
- 13 files changed, 888 insertions(+), 73 deletions(-)
-
-diff --git a/Source/JavaScriptCore/assembler/MIPSAssembler.h b/Source/JavaScriptCore/assembler/MIPSAssembler.h
-index 026f87e..7f553bb 100644
---- a/Source/JavaScriptCore/assembler/MIPSAssembler.h
-+++ b/Source/JavaScriptCore/assembler/MIPSAssembler.h
-@@ -152,6 +152,8 @@ public:
-     typedef SegmentedVector<AssemblerLabel, 64> Jumps;
- 
-     MIPSAssembler()
-+        : m_indexOfLastWatchpoint(INT_MIN)
-+        , m_indexOfTailOfLastWatchpoint(INT_MIN)
-     {
-     }
- 
-@@ -325,7 +327,7 @@ public:
-         emitInst(0x00000000 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | ((shamt & 0x1f) << OP_SH_SHAMT));
-     }
- 
--    void sllv(RegisterID rd, RegisterID rt, int rs)
-+    void sllv(RegisterID rd, RegisterID rt, RegisterID rs)
-     {
-         emitInst(0x00000004 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | (rs << OP_SH_RS));
-     }
-@@ -527,6 +529,16 @@ public:
-         emitInst(0x46200004 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-     }
- 
-+    void movd(FPRegisterID fd, FPRegisterID fs)
-+    {
-+        emitInst(0x46200006 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-+    }
-+
-+    void negd(FPRegisterID fd, FPRegisterID fs)
-+    {
-+        emitInst(0x46200007 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-+    }
-+
-     void truncwd(FPRegisterID fd, FPRegisterID fs)
-     {
-         emitInst(0x4620000d | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-@@ -619,9 +631,24 @@ public:
-         return m_buffer.label();
-     }
- 
-+    AssemblerLabel labelForWatchpoint()
-+    {
-+        AssemblerLabel result = m_buffer.label();
-+        if (static_cast<int>(result.m_offset) != m_indexOfLastWatchpoint)
-+            result = label();
-+        m_indexOfLastWatchpoint = result.m_offset;
-+        m_indexOfTailOfLastWatchpoint = result.m_offset + maxJumpReplacementSize();
-+        return result;
-+    }
-+
-     AssemblerLabel label()
-     {
--        return m_buffer.label();
-+        AssemblerLabel result = m_buffer.label();
-+        while (UNLIKELY(static_cast<int>(result.m_offset) < m_indexOfTailOfLastWatchpoint)) {
-+            nop();
-+            result = m_buffer.label();
-+        }
-+        return result;
-     }
- 
-     AssemblerLabel align(int alignment)
-@@ -664,14 +691,24 @@ public:
-     // Assembly helpers for moving data between fp and registers.
-     void vmov(RegisterID rd1, RegisterID rd2, FPRegisterID rn)
-     {
-+#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-+        mfc1(rd1, rn);
-+        mfhc1(rd2, rn);
-+#else
-         mfc1(rd1, rn);
-         mfc1(rd2, FPRegisterID(rn + 1));
-+#endif
-     }
- 
-     void vmov(FPRegisterID rd, RegisterID rn1, RegisterID rn2)
-     {
-+#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-+        mtc1(rn1, rd);
-+        mthc1(rn2, rd);
-+#else
-         mtc1(rn1, rd);
-         mtc1(rn2, FPRegisterID(rd + 1));
-+#endif
-     }
- 
-     static unsigned getCallReturnOffset(AssemblerLabel call)
-@@ -688,6 +725,35 @@ public:
-     // writable region of memory; to modify the code in an execute-only execuable
-     // pool the 'repatch' and 'relink' methods should be used.
- 
-+    static size_t linkDirectJump(void* code, void* to)
-+    {
-+        MIPSWord* insn = reinterpret_cast<MIPSWord*>(reinterpret_cast<intptr_t>(code));
-+        size_t ops = 0;
-+        int32_t slotAddr = reinterpret_cast<int>(insn) + 4;
-+        int32_t toAddr = reinterpret_cast<int>(to);
-+
-+        if ((slotAddr & 0xf0000000) != (toAddr & 0xf0000000)) {
-+            // lui
-+            *insn = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((toAddr >> 16) & 0xffff);
-+            ++insn;
-+            // ori
-+            *insn = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (toAddr & 0xffff);
-+            ++insn;
-+            // jr
-+            *insn = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
-+            ++insn;
-+            ops = 4 * sizeof(MIPSWord);
-+        } else {
-+            // j
-+            *insn = 0x08000000 | ((toAddr & 0x0fffffff) >> 2);
-+            ++insn;
-+            ops = 2 * sizeof(MIPSWord);
-+        }
-+        // nop
-+        *insn = 0x00000000;
-+        return ops;
-+    }
-+
-     void linkJump(AssemblerLabel from, AssemblerLabel to)
-     {
-         ASSERT(to.isSet());
-@@ -825,29 +891,36 @@ public:
- #endif
-     }
- 
--    static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
-+    static ptrdiff_t maxJumpReplacementSize()
-     {
--        MIPSWord* insn = static_cast<MIPSWord*>(instructionStart) + 1;
--        ASSERT((*insn & 0xfc000000) == 0x34000000);
--        *insn = (*insn & 0xfc1f0000) | (imm & 0xffff);
--        cacheFlush(insn, sizeof(MIPSWord));
-+        return sizeof(MIPSWord) * 4;
-     }
- 
--    static void replaceWithJump(void* instructionStart, void* to)
-+    static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
-     {
--        MIPSWord* instruction = reinterpret_cast<MIPSWord*>(instructionStart);
--        intptr_t jumpTo = reinterpret_cast<intptr_t>(to);
-+        MIPSWord* insn = static_cast<MIPSWord*>(instructionStart);
-+        size_t codeSize = 2 * sizeof(MIPSWord);
- 
-         // lui
--        instruction[0] = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((jumpTo >> 16) & 0xffff);
-+        *insn = 0x3c000000 | (rt << OP_SH_RT) | ((imm >> 16) & 0xffff);
-+        ++insn;
-         // ori
--        instruction[1] = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (jumpTo & 0xffff);
--        // jr
--        instruction[2] = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
--        // nop
--        instruction[3] = 0x0;
-+        *insn = 0x34000000 | (rt << OP_SH_RS) | (rt << OP_SH_RT) | (imm & 0xffff);
-+        ++insn;
-+        // if jr $t9
-+        if (*insn == 0x03200008) {
-+            *insn = 0x00000000;
-+            codeSize += sizeof(MIPSWord);
-+        }
-+        cacheFlush(insn, codeSize);
-+    }
- 
--        cacheFlush(instruction, sizeof(MIPSWord) * 4);
-+    static void replaceWithJump(void* instructionStart, void* to)
-+    {
-+        ASSERT(!(bitwise_cast<uintptr_t>(instructionStart) & 3));
-+        ASSERT(!(bitwise_cast<uintptr_t>(to) & 3));
-+        size_t ops = linkDirectJump(instructionStart, to);
-+        cacheFlush(instructionStart, ops);
-     }
- 
-     static void replaceWithLoad(void* instructionStart)
-@@ -1023,6 +1096,8 @@ private:
- 
-     AssemblerBuffer m_buffer;
-     Jumps m_jumps;
-+    int m_indexOfLastWatchpoint;
-+    int m_indexOfTailOfLastWatchpoint;
- };
- 
- } // namespace JSC
-diff --git a/Source/JavaScriptCore/assembler/MacroAssembler.h b/Source/JavaScriptCore/assembler/MacroAssembler.h
-index 60a93db..1f0c3de 100644
---- a/Source/JavaScriptCore/assembler/MacroAssembler.h
-+++ b/Source/JavaScriptCore/assembler/MacroAssembler.h
-@@ -200,6 +200,13 @@ public:
-     }
- #endif
-     
-+#if CPU(MIPS)
-+    void poke(FPRegisterID src, int index = 0)
-+    {
-+        ASSERT(!(index & 1));
-+        storeDouble(src, addressForPoke(index));
-+    }
-+#endif
- 
-     // Backwards banches, these are currently all implemented using existing forwards branch mechanisms.
-     void branchPtr(RelationalCondition cond, RegisterID op1, TrustedImmPtr imm, Label target)
-diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-index 43ad434..4f14960 100644
---- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-+++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-@@ -114,6 +114,11 @@ public:
-         m_assembler.addu(dest, dest, src);
-     }
- 
-+    void add32(RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        m_assembler.addu(dest, op1, op2);
-+    }
-+
-     void add32(TrustedImm32 imm, RegisterID dest)
-     {
-         add32(imm, dest, dest);
-@@ -267,6 +272,11 @@ public:
-         m_assembler.andInsn(dest, dest, src);
-     }
- 
-+    void and32(RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        m_assembler.andInsn(dest, op1, op2);
-+    }
-+
-     void and32(TrustedImm32 imm, RegisterID dest)
-     {
-         if (!imm.m_value && !m_fixedWidth)
-@@ -283,9 +293,16 @@ public:
-         }
-     }
- 
--    void lshift32(TrustedImm32 imm, RegisterID dest)
-+    void and32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-     {
--        m_assembler.sll(dest, dest, imm.m_value);
-+        if (!imm.m_value && !m_fixedWidth)
-+            move(MIPSRegisters::zero, dest);
-+        else if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth)
-+            m_assembler.andi(dest, src, imm.m_value);
-+        else {
-+            move(imm, immTempRegister);
-+            m_assembler.andInsn(dest, src, immTempRegister);
-+        }
-     }
- 
-     void lshift32(RegisterID shiftAmount, RegisterID dest)
-@@ -293,11 +310,33 @@ public:
-         m_assembler.sllv(dest, dest, shiftAmount);
-     }
- 
-+    void lshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+    {
-+        m_assembler.sllv(dest, src, shiftAmount);
-+    }
-+
-+    void lshift32(TrustedImm32 imm, RegisterID dest)
-+    {
-+        move(imm, immTempRegister);
-+        m_assembler.sllv(dest, dest, immTempRegister);
-+    }
-+
-+    void lshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
-+    {
-+        move(imm, immTempRegister);
-+        m_assembler.sllv(dest, src, immTempRegister);
-+    }
-+
-     void mul32(RegisterID src, RegisterID dest)
-     {
-         m_assembler.mul(dest, dest, src);
-     }
- 
-+    void mul32(RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        m_assembler.mul(dest, op1, op2);
-+    }
-+
-     void mul32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-     {
-         if (!imm.m_value && !m_fixedWidth)
-@@ -348,6 +387,24 @@ public:
-         m_assembler.orInsn(dest, dest, dataTempRegister);
-     }
- 
-+    void or32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-+    {
-+        if (!imm.m_value && !m_fixedWidth)
-+            return;
-+
-+        if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth) {
-+            m_assembler.ori(dest, src, imm.m_value);
-+            return;
-+        }
-+
-+        /*
-+            li      dataTemp, imm
-+            or      dest, src, dataTemp
-+        */
-+        move(imm, dataTempRegister);
-+        m_assembler.orInsn(dest, src, dataTempRegister);
-+    }
-+
-     void or32(RegisterID src, AbsoluteAddress dest)
-     {
-         load32(dest.m_ptr, dataTempRegister);
-@@ -360,6 +417,11 @@ public:
-         m_assembler.srav(dest, dest, shiftAmount);
-     }
- 
-+    void rshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+    {
-+        m_assembler.srav(dest, src, shiftAmount);
-+    }
-+
-     void rshift32(TrustedImm32 imm, RegisterID dest)
-     {
-         m_assembler.sra(dest, dest, imm.m_value);
-@@ -375,16 +437,31 @@ public:
-         m_assembler.srlv(dest, dest, shiftAmount);
-     }
- 
-+    void urshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+    {
-+        m_assembler.srlv(dest, src, shiftAmount);
-+    }
-+
-     void urshift32(TrustedImm32 imm, RegisterID dest)
-     {
-         m_assembler.srl(dest, dest, imm.m_value);
-     }
- 
-+    void urshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
-+    {
-+        m_assembler.srl(dest, src, imm.m_value);
-+    }
-+
-     void sub32(RegisterID src, RegisterID dest)
-     {
-         m_assembler.subu(dest, dest, src);
-     }
- 
-+    void sub32(RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        m_assembler.subu(dest, op1, op2);
-+    }
-+
-     void sub32(TrustedImm32 imm, RegisterID dest)
-     {
-         if (imm.m_value >= -32767 && imm.m_value <= 32768
-@@ -495,6 +572,11 @@ public:
-         m_assembler.xorInsn(dest, dest, src);
-     }
- 
-+    void xor32(RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        m_assembler.xorInsn(dest, op1, op2);
-+    }
-+
-     void xor32(TrustedImm32 imm, RegisterID dest)
-     {
-         if (imm.m_value == -1) {
-@@ -510,6 +592,21 @@ public:
-         m_assembler.xorInsn(dest, dest, immTempRegister);
-     }
- 
-+    void xor32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-+    {
-+        if (imm.m_value == -1) {
-+            m_assembler.nor(dest, src, MIPSRegisters::zero);
-+            return;
-+        }
-+
-+        /*
-+            li  immTemp, imm
-+            xor dest, dest, immTemp
-+        */
-+        move(imm, immTempRegister);
-+        m_assembler.xorInsn(dest, src, immTempRegister);
-+    }
-+
-     void sqrtDouble(FPRegisterID src, FPRegisterID dst)
-     {
-         m_assembler.sqrtd(dst, src);
-@@ -989,6 +1086,44 @@ public:
-         }
-     }
- 
-+    void store32(TrustedImm32 imm, BaseIndex address)
-+    {
-+        if (address.offset >= -32768 && address.offset <= 32767 && !m_fixedWidth) {
-+            /*
-+                sll     addrTemp, address.index, address.scale
-+                addu    addrTemp, addrTemp, address.base
-+                sw      src, address.offset(addrTemp)
-+            */
-+            m_assembler.sll(addrTempRegister, address.index, address.scale);
-+            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-+            if (!imm.m_value)
-+                m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
-+            else {
-+                move(imm, immTempRegister);
-+                m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
-+            }
-+        } else {
-+            /*
-+                sll     addrTemp, address.index, address.scale
-+                addu    addrTemp, addrTemp, address.base
-+                lui     immTemp, (address.offset + 0x8000) >> 16
-+                addu    addrTemp, addrTemp, immTemp
-+                sw      src, (address.offset & 0xffff)(at)
-+            */
-+            m_assembler.sll(addrTempRegister, address.index, address.scale);
-+            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-+            m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16);
-+            m_assembler.addu(addrTempRegister, addrTempRegister, immTempRegister);
-+            if (!imm.m_value && !m_fixedWidth)
-+                m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
-+            else {
-+                move(imm, immTempRegister);
-+                m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
-+            }
-+        }
-+    }
-+
-+
-     void store32(RegisterID src, const void* address)
-     {
-         /*
-@@ -1336,6 +1471,15 @@ public:
-         m_fixedWidth = false;
-     }
- 
-+    void jump(AbsoluteAddress address)
-+    {
-+        m_fixedWidth = true;
-+        load32(address.m_ptr, MIPSRegisters::t9);
-+        m_assembler.jr(MIPSRegisters::t9);
-+        m_assembler.nop();
-+        m_fixedWidth = false;
-+    }
-+
-     void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
-     {
-         m_assembler.vmov(dest1, dest2, src);
-@@ -1404,6 +1548,53 @@ public:
-         return Jump();
-     }
- 
-+    Jump branchAdd32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+        if (cond == Overflow) {
-+            /*
-+                move    dataTemp, op1
-+                xor     cmpTemp, dataTemp, op2
-+                bltz    cmpTemp, No_overflow    # diff sign bit -> no overflow
-+                addu    dest, dataTemp, op2
-+                xor     cmpTemp, dest, dataTemp
-+                bgez    cmpTemp, No_overflow    # same sign big -> no overflow
-+                nop
-+                b       Overflow
-+                nop
-+                nop
-+                nop
-+                nop
-+                nop
-+            No_overflow:
-+            */
-+            move(op1, dataTempRegister);
-+            m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
-+            m_assembler.bltz(cmpTempRegister, 10);
-+            m_assembler.addu(dest, dataTempRegister, op2);
-+            m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
-+            m_assembler.bgez(cmpTempRegister, 7);
-+            m_assembler.nop();
-+            return jump();
-+        }
-+        if (cond == Signed) {
-+            add32(op1, op2, dest);
-+            // Check if dest is negative.
-+            m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+        }
-+        if (cond == Zero) {
-+            add32(op1, op2, dest);
-+            return branchEqual(dest, MIPSRegisters::zero);
-+        }
-+        if (cond == NonZero) {
-+            add32(op1, op2, dest);
-+            return branchNotEqual(dest, MIPSRegisters::zero);
-+        }
-+        ASSERT(0);
-+        return Jump();
-+    }
-+
-     Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, RegisterID dest)
-     {
-         move(imm, immTempRegister);
-@@ -1417,6 +1608,111 @@ public:
-         return branchAdd32(cond, immTempRegister, dest);
-     }
- 
-+    Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest)
-+    {
-+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+        if (cond == Overflow) {
-+            /*
-+                move    dataTemp, dest
-+                xori    cmpTemp, dataTemp, imm
-+                bltz    cmpTemp, No_overflow    # diff sign bit -> no overflow
-+                addiu   dataTemp, dataTemp, imm
-+                move    dest, dataTemp
-+                xori    cmpTemp, dataTemp, imm
-+                bgez    cmpTemp, No_overflow    # same sign big -> no overflow
-+                nop
-+                b       Overflow
-+                nop
-+                nop
-+                nop
-+                nop
-+                nop
-+            No_overflow:
-+            */
-+            if (imm.m_value >= -32768 && imm.m_value  <= 32767 && !m_fixedWidth) {
-+                load32(dest.m_ptr, dataTempRegister);
-+                m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
-+                m_assembler.bltz(cmpTempRegister, 10);
-+                m_assembler.addiu(dataTempRegister, dataTempRegister, imm.m_value);
-+                store32(dataTempRegister, dest.m_ptr);
-+                m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
-+                m_assembler.bgez(cmpTempRegister, 7);
-+                m_assembler.nop();
-+            } else {
-+                load32(dest.m_ptr, dataTempRegister);
-+                move(imm, immTempRegister);
-+                m_assembler.xorInsn(cmpTempRegister, dataTempRegister, immTempRegister);
-+                m_assembler.bltz(cmpTempRegister, 10);
-+                m_assembler.addiu(dataTempRegister, dataTempRegister, immTempRegister);
-+                store32(dataTempRegister, dest.m_ptr);
-+                m_assembler.xori(cmpTempRegister, dataTempRegister, immTempRegister);
-+                m_assembler.bgez(cmpTempRegister, 7);
-+                m_assembler.nop();
-+            }
-+            return jump();
-+        }
-+        move(imm, immTempRegister);
-+        load32(dest.m_ptr, dataTempRegister);
-+        add32(immTempRegister, dataTempRegister);
-+        store32(dataTempRegister, dest.m_ptr);
-+        if (cond == Signed) {
-+            // Check if dest is negative.
-+            m_assembler.slt(cmpTempRegister, dataTempRegister, MIPSRegisters::zero);
-+            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+        }
-+        if (cond == Zero)
-+            return branchEqual(dataTempRegister, MIPSRegisters::zero);
-+        if (cond == NonZero)
-+            return branchNotEqual(dataTempRegister, MIPSRegisters::zero);
-+        ASSERT(0);
-+        return Jump();
-+    }
-+
-+    Jump branchMul32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest)
-+    {
-+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+        if (cond == Overflow) {
-+            /*
-+                mult    src, dest
-+                mfhi    dataTemp
-+                mflo    dest
-+                sra     addrTemp, dest, 31
-+                beq     dataTemp, addrTemp, No_overflow # all sign bits (bit 63 to bit 31) are the same -> no overflow
-+                nop
-+                b       Overflow
-+                nop
-+                nop
-+                nop
-+                nop
-+                nop
-+            No_overflow:
-+            */
-+            m_assembler.mult(src1, src2);
-+            m_assembler.mfhi(dataTempRegister);
-+            m_assembler.mflo(dest);
-+            m_assembler.sra(addrTempRegister, dest, 31);
-+            m_assembler.beq(dataTempRegister, addrTempRegister, 7);
-+            m_assembler.nop();
-+            return jump();
-+        }
-+        if (cond == Signed) {
-+            mul32(src1, src2, dest);
-+            // Check if dest is negative.
-+            m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+        }
-+        if (cond == Zero) {
-+            mul32(src1, src2, dest);
-+            return branchEqual(dest, MIPSRegisters::zero);
-+        }
-+        if (cond == NonZero) {
-+            mul32(src1, src2, dest);
-+            return branchNotEqual(dest, MIPSRegisters::zero);
-+        }
-+        ASSERT(0);
-+        return Jump();
-+    }
-+
-     Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest)
-     {
-         ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-@@ -1465,8 +1761,7 @@ public:
-     Jump branchMul32(ResultCondition cond, TrustedImm32 imm, RegisterID src, RegisterID dest)
-     {
-         move(imm, immTempRegister);
--        move(src, dest);
--        return branchMul32(cond, immTempRegister, dest);
-+        return branchMul32(cond, immTempRegister, src, dest);
-     }
- 
-     Jump branchSub32(ResultCondition cond, RegisterID src, RegisterID dest)
-@@ -1525,8 +1820,60 @@ public:
-     Jump branchSub32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
-     {
-         move(imm, immTempRegister);
--        move(src, dest);
--        return branchSub32(cond, immTempRegister, dest);
-+        return branchSub32(cond, src, immTempRegister, dest);
-+    }
-+
-+    Jump branchSub32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
-+    {
-+        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+        if (cond == Overflow) {
-+            /*
-+                move    dataTemp, op1
-+                xor     cmpTemp, dataTemp, op2
-+                bgez    cmpTemp, No_overflow    # same sign bit -> no overflow
-+                subu    dest, dataTemp, op2
-+                xor     cmpTemp, dest, dataTemp
-+                bgez    cmpTemp, No_overflow    # same sign bit -> no overflow
-+                nop
-+                b       Overflow
-+                nop
-+                nop
-+                nop
-+                nop
-+                nop
-+            No_overflow:
-+            */
-+            move(op1, dataTempRegister);
-+            m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
-+            m_assembler.bgez(cmpTempRegister, 10);
-+            m_assembler.subu(dest, dataTempRegister, op2);
-+            m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
-+            m_assembler.bgez(cmpTempRegister, 7);
-+            m_assembler.nop();
-+            return jump();
-+        }
-+        if (cond == Signed) {
-+            sub32(op1, op2, dest);
-+            // Check if dest is negative.
-+            m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+        }
-+        if (cond == Zero) {
-+            sub32(op1, op2, dest);
-+            return branchEqual(dest, MIPSRegisters::zero);
-+        }
-+        if (cond == NonZero) {
-+            sub32(op1, op2, dest);
-+            return branchNotEqual(dest, MIPSRegisters::zero);
-+        }
-+        ASSERT(0);
-+        return Jump();
-+    }
-+
-+    Jump branchNeg32(ResultCondition cond, RegisterID srcDest)
-+    {
-+        m_assembler.li(dataTempRegister, -1);
-+        return branchMul32(cond, dataTempRegister, srcDest);
-     }
- 
-     Jump branchOr32(ResultCondition cond, RegisterID src, RegisterID dest)
-@@ -1578,7 +1925,8 @@ public:
- 
-     Call call(RegisterID target)
-     {
--        m_assembler.jalr(target);
-+        move(target, MIPSRegisters::t9);
-+        m_assembler.jalr(MIPSRegisters::t9);
-         m_assembler.nop();
-         return Call(m_assembler.label(), Call::None);
-     }
-@@ -1822,7 +2170,7 @@ public:
-                 lui     immTemp, (address.offset + 0x8000) >> 16
-                 addu    addrTemp, addrTemp, immTemp
-                 lwc1    dest, (address.offset & 0xffff)(at)
--                lwc1    dest+4, (address.offset & 0xffff + 4)(at)
-+                lwc1    dest+1, (address.offset & 0xffff + 4)(at)
-             */
-             m_assembler.sll(addrTempRegister, address.index, address.scale);
-             m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-@@ -2009,6 +2357,19 @@ public:
- #endif
-     }
- 
-+    void moveDouble(FPRegisterID src, FPRegisterID dest)
-+    {
-+        if (src != dest || m_fixedWidth)
-+            m_assembler.movd(dest, src);
-+    }
-+
-+    void swapDouble(FPRegisterID fr1, FPRegisterID fr2)
-+    {
-+        moveDouble(fr1, fpTempRegister);
-+        moveDouble(fr2, fr1);
-+        moveDouble(fpTempRegister, fr2);
-+    }
-+
-     void addDouble(FPRegisterID src, FPRegisterID dest)
-     {
-         m_assembler.addd(dest, dest, src);
-@@ -2036,6 +2397,11 @@ public:
-         m_assembler.subd(dest, dest, src);
-     }
- 
-+    void subDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+    {
-+        m_assembler.subd(dest, op1, op2);
-+    }
-+
-     void subDouble(Address src, FPRegisterID dest)
-     {
-         loadDouble(src, fpTempRegister);
-@@ -2053,11 +2419,32 @@ public:
-         m_assembler.muld(dest, dest, fpTempRegister);
-     }
- 
-+    void mulDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+    {
-+        m_assembler.muld(dest, op1, op2);
-+    }
-+
-     void divDouble(FPRegisterID src, FPRegisterID dest)
-     {
-         m_assembler.divd(dest, dest, src);
-     }
- 
-+    void divDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+    {
-+        m_assembler.divd(dest, op1, op2);
-+    }
-+
-+    void divDouble(Address src, FPRegisterID dest)
-+    {
-+        loadDouble(src, fpTempRegister);
-+        m_assembler.divd(dest, dest, fpTempRegister);
-+    }
-+
-+    void negateDouble(FPRegisterID src, FPRegisterID dest)
-+    {
-+        m_assembler.negd(dest, src);
-+    }
-+
-     void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
-     {
-         m_assembler.mtc1(src, fpTempRegister);
-@@ -2117,6 +2504,8 @@ public:
- 
-     Jump branchEqual(RegisterID rs, RegisterID rt)
-     {
-+        m_assembler.nop();
-+        m_assembler.nop();
-         m_assembler.appendJump();
-         m_assembler.beq(rs, rt, 0);
-         m_assembler.nop();
-@@ -2126,6 +2515,8 @@ public:
- 
-     Jump branchNotEqual(RegisterID rs, RegisterID rt)
-     {
-+        m_assembler.nop();
-+        m_assembler.nop();
-         m_assembler.appendJump();
-         m_assembler.bne(rs, rt, 0);
-         m_assembler.nop();
-@@ -2192,11 +2583,33 @@ public:
-     // If the result is not representable as a 32 bit value, branch.
-     // May also branch for some values that are representable in 32 bits
-     // (specifically, in this case, INT_MAX 0x7fffffff).
--    Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest)
-+    enum BranchTruncateType { BranchIfTruncateFailed, BranchIfTruncateSuccessful };
-+    Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
-+    {
-+        m_assembler.truncwd(fpTempRegister, src);
-+        m_assembler.mfc1(dest, fpTempRegister);
-+        return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0x7fffffff));
-+    }
-+
-+    Jump branchTruncateDoubleToUint32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
-+    {
-+        m_assembler.truncwd(fpTempRegister, src);
-+        m_assembler.mfc1(dest, fpTempRegister);
-+        return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0));
-+    }
-+
-+    // Result is undefined if the value is outside of the integer range.
-+    void truncateDoubleToInt32(FPRegisterID src, RegisterID dest)
-+    {
-+        m_assembler.truncwd(fpTempRegister, src);
-+        m_assembler.mfc1(dest, fpTempRegister);
-+    }
-+
-+    // Result is undefined if src > 2^31
-+    void truncateDoubleToUint32(FPRegisterID src, RegisterID dest)
-     {
-         m_assembler.truncwd(fpTempRegister, src);
-         m_assembler.mfc1(dest, fpTempRegister);
--        return branch32(Equal, dest, TrustedImm32(0x7fffffff));
-     }
- 
-     // Convert 'src' to an integer, and places the resulting 'dest'.
-@@ -2218,28 +2631,43 @@ public:
- 
-     Jump branchDoubleNonZero(FPRegisterID reg, FPRegisterID scratch)
-     {
--#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
--        m_assembler.mtc1(MIPSRegisters::zero, scratch);
--        m_assembler.mthc1(MIPSRegisters::zero, scratch);
--#else
--        m_assembler.mtc1(MIPSRegisters::zero, scratch);
--        m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
--#endif
-+        m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
-         return branchDouble(DoubleNotEqual, reg, scratch);
-     }
- 
-     Jump branchDoubleZeroOrNaN(FPRegisterID reg, FPRegisterID scratch)
-     {
--#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
--        m_assembler.mtc1(MIPSRegisters::zero, scratch);
--        m_assembler.mthc1(MIPSRegisters::zero, scratch);
--#else
--        m_assembler.mtc1(MIPSRegisters::zero, scratch);
--        m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
--#endif
-+        m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
-         return branchDouble(DoubleEqualOrUnordered, reg, scratch);
-     }
- 
-+    // Invert a relational condition, e.g. == becomes !=, < becomes >=, etc.
-+    static RelationalCondition invert(RelationalCondition cond)
-+    {
-+        RelationalCondition r;
-+        if (cond == Equal)
-+            r = NotEqual;
-+        else if (cond == NotEqual)
-+            r = Equal;
-+        else if (cond == Above)
-+            r = BelowOrEqual;
-+        else if (cond == AboveOrEqual)
-+            r = Below;
-+        else if (cond == Below)
-+            r = AboveOrEqual;
-+        else if (cond == BelowOrEqual)
-+            r = Above;
-+        else if (cond == GreaterThan)
-+            r = LessThanOrEqual;
-+        else if (cond == GreaterThanOrEqual)
-+            r = LessThan;
-+        else if (cond == LessThan)
-+            r = GreaterThanOrEqual;
-+        else if (cond == LessThanOrEqual)
-+            r = GreaterThan;
-+        return r;
-+    }
-+
-     void nop()
-     {
-         m_assembler.nop();
-@@ -2252,12 +2680,12 @@ public:
- 
-     static void replaceWithJump(CodeLocationLabel instructionStart, CodeLocationLabel destination)
-     {
--        RELEASE_ASSERT_NOT_REACHED();
-+        MIPSAssembler::replaceWithJump(instructionStart.dataLocation(), destination.dataLocation());
-     }
-     
-     static ptrdiff_t maxJumpReplacementSize()
-     {
--        RELEASE_ASSERT_NOT_REACHED();
-+        MIPSAssembler::maxJumpReplacementSize();
-         return 0;
-     }
- 
-diff --git a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-index fa0f5e0..573d8dc 100644
---- a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-+++ b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-@@ -93,6 +93,23 @@ public:
-     }
- #endif
- 
-+#if CPU(MIPS)
-+    ALWAYS_INLINE void preserveReturnAddressAfterCall(RegisterID reg)
-+    {
-+        move(returnAddressRegister, reg);
-+    }
-+
-+    ALWAYS_INLINE void restoreReturnAddressBeforeReturn(RegisterID reg)
-+    {
-+        move(reg, returnAddressRegister);
-+    }
-+
-+    ALWAYS_INLINE void restoreReturnAddressBeforeReturn(Address address)
-+    {
-+        loadPtr(address, returnAddressRegister);
-+    }
-+#endif
-+
-     void emitGetFromCallFrameHeaderPtr(JSStack::CallFrameHeaderEntry entry, GPRReg to)
-     {
-         loadPtr(Address(GPRInfo::callFrameRegister, entry * sizeof(Register)), to);
-@@ -193,7 +210,7 @@ public:
-         move(TrustedImmPtr(scratchBuffer->activeLengthPtr()), GPRInfo::regT0);
-         storePtr(TrustedImmPtr(scratchSize), GPRInfo::regT0);
- 
--#if CPU(X86_64) || CPU(ARM)
-+#if CPU(X86_64) || CPU(ARM) || CPU(MIPS)
-         move(TrustedImmPtr(buffer), GPRInfo::argumentGPR2);
-         move(TrustedImmPtr(argument), GPRInfo::argumentGPR1);
-         move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-diff --git a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-index 8adde05..3d99f6f 100644
---- a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-+++ b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-@@ -576,6 +576,39 @@ public:
-         poke(GPRInfo::nonArgGPR0);
-     }
- #endif // CPU(ARM_HARDFP)
-+#elif CPU(MIPS)
-+    ALWAYS_INLINE void setupArguments(FPRReg arg1)
-+    {
-+        moveDouble(arg1, FPRInfo::argumentFPR0);
-+    }
-+
-+    ALWAYS_INLINE void setupArguments(FPRReg arg1, FPRReg arg2)
-+    {
-+        if (arg2 != FPRInfo::argumentFPR0) {
-+            moveDouble(arg1, FPRInfo::argumentFPR0);
-+            moveDouble(arg2, FPRInfo::argumentFPR1);
-+        } else if (arg1 != FPRInfo::argumentFPR1) {
-+            moveDouble(arg2, FPRInfo::argumentFPR1);
-+            moveDouble(arg1, FPRInfo::argumentFPR0);
-+        } else {
-+            // Swap arg1, arg2.
-+            swapDouble(FPRInfo::argumentFPR0, FPRInfo::argumentFPR1);
-+        }
-+    }
-+
-+    ALWAYS_INLINE void setupArgumentsWithExecState(FPRReg arg1, GPRReg arg2)
-+    {
-+        assembler().vmov(GPRInfo::argumentGPR2, GPRInfo::argumentGPR3, arg1);
-+        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-+        poke(arg2, 4);
-+    }
-+
-+    ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, FPRReg arg3)
-+    {
-+        setupStubArguments(arg1, arg2);
-+        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-+        poke(arg3, 4);
-+    }
- #else
- #error "DFG JIT not supported on this platform."
- #endif
-@@ -803,119 +836,126 @@ public:
-     // These methods are suitable for any calling convention that provides for
-     // exactly 4 argument registers, e.g. ARMv7.
- #if NUMBER_OF_ARGUMENT_REGISTERS == 4
-+
-+#if CPU(MIPS)
-+#define POKE_ARGUMENT_OFFSET 4
-+#else
-+#define POKE_ARGUMENT_OFFSET 0
-+#endif
-+
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImm32 arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, GPRReg arg3, GPRReg arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImmPtr arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4)
-     {
--        poke(arg4);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, TrustedImm32 arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, TrustedImmPtr arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4, TrustedImm32 arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-     ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
-     {
--        poke(arg5, 1);
--        poke(arg4);
-+        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+        poke(arg4, POKE_ARGUMENT_OFFSET);
-         setupArgumentsWithExecState(arg1, arg2, arg3);
-     }
- 
-diff --git a/Source/JavaScriptCore/dfg/DFGFPRInfo.h b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-index 17aaa7d..e18ec06 100644
---- a/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-+++ b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-@@ -164,6 +164,74 @@ public:
- 
- #endif
- 
-+#if CPU(MIPS)
-+
-+class FPRInfo {
-+public:
-+    typedef FPRReg RegisterType;
-+    static const unsigned numberOfRegisters = 6;
-+
-+    // Temporary registers.
-+    static const FPRReg fpRegT0 = MIPSRegisters::f0;
-+    static const FPRReg fpRegT1 = MIPSRegisters::f4;
-+    static const FPRReg fpRegT2 = MIPSRegisters::f6;
-+    static const FPRReg fpRegT3 = MIPSRegisters::f8;
-+    static const FPRReg fpRegT4 = MIPSRegisters::f10;
-+    static const FPRReg fpRegT5 = MIPSRegisters::f18;
-+
-+    static const FPRReg returnValueFPR = MIPSRegisters::f0;
-+
-+    static const FPRReg argumentFPR0 = MIPSRegisters::f12;
-+    static const FPRReg argumentFPR1 = MIPSRegisters::f14;
-+
-+    static FPRReg toRegister(unsigned index)
-+    {
-+        static const FPRReg registerForIndex[numberOfRegisters] = {
-+            fpRegT0, fpRegT1, fpRegT2, fpRegT3, fpRegT4, fpRegT5 };
-+
-+        ASSERT(index < numberOfRegisters);
-+        return registerForIndex[index];
-+    }
-+
-+    static unsigned toIndex(FPRReg reg)
-+    {
-+        ASSERT(reg != InvalidFPRReg);
-+        ASSERT(reg < 20);
-+        static const unsigned indexForRegister[20] = {
-+            0, InvalidIndex, InvalidIndex, InvalidIndex,
-+            1, InvalidIndex, 2, InvalidIndex,
-+            3, InvalidIndex, 4, InvalidIndex,
-+            InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
-+            InvalidIndex, InvalidIndex, 5, InvalidIndex,
-+        };
-+        unsigned result = indexForRegister[reg];
-+        ASSERT(result != InvalidIndex);
-+        return result;
-+    }
-+
-+    static const char* debugName(FPRReg reg)
-+    {
-+        ASSERT(reg != InvalidFPRReg);
-+        ASSERT(reg < 32);
-+        static const char* nameForRegister[32] = {
-+            "f0", "f1", "f2", "f3",
-+            "f4", "f5", "f6", "f7",
-+            "f8", "f9", "f10", "f11",
-+            "f12", "f13", "f14", "f15"
-+            "f16", "f17", "f18", "f19"
-+            "f20", "f21", "f22", "f23"
-+            "f24", "f25", "f26", "f27"
-+            "f28", "f29", "f30", "f31"
-+        };
-+        return nameForRegister[reg];
-+    }
-+private:
-+
-+    static const unsigned InvalidIndex = 0xffffffff;
-+};
-+
-+#endif
-+
- typedef RegisterBank<FPRInfo>::iterator fpr_iterator;
- 
- } } // namespace JSC::DFG
-diff --git a/Source/JavaScriptCore/dfg/DFGGPRInfo.h b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-index 3d07556..aa634cd 100644
---- a/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-+++ b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-@@ -461,6 +461,73 @@ private:
- 
- #endif
- 
-+#if CPU(MIPS)
-+#define NUMBER_OF_ARGUMENT_REGISTERS 4
-+
-+class GPRInfo {
-+public:
-+    typedef GPRReg RegisterType;
-+    static const unsigned numberOfRegisters = 6;
-+
-+    // Temporary registers.
-+    static const GPRReg regT0 = MIPSRegisters::v0;
-+    static const GPRReg regT1 = MIPSRegisters::v1;
-+    static const GPRReg regT2 = MIPSRegisters::t4;
-+    static const GPRReg regT3 = MIPSRegisters::t5;
-+    static const GPRReg regT4 = MIPSRegisters::t6;
-+    static const GPRReg regT5 = MIPSRegisters::t7;
-+    // These registers match the baseline JIT.
-+    static const GPRReg cachedResultRegister = regT0;
-+    static const GPRReg cachedResultRegister2 = regT1;
-+    static const GPRReg callFrameRegister = MIPSRegisters::s0;
-+    // These constants provide the names for the general purpose argument & return value registers.
-+    static const GPRReg argumentGPR0 = MIPSRegisters::a0;
-+    static const GPRReg argumentGPR1 = MIPSRegisters::a1;
-+    static const GPRReg argumentGPR2 = MIPSRegisters::a2;
-+    static const GPRReg argumentGPR3 = MIPSRegisters::a3;
-+    static const GPRReg nonArgGPR0 = regT2;
-+    static const GPRReg nonArgGPR1 = regT3;
-+    static const GPRReg nonArgGPR2 = regT4;
-+    static const GPRReg returnValueGPR = regT0;
-+    static const GPRReg returnValueGPR2 = regT1;
-+    static const GPRReg nonPreservedNonReturnGPR = regT5;
-+
-+    static GPRReg toRegister(unsigned index)
-+    {
-+        ASSERT(index < numberOfRegisters);
-+        static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5 };
-+        return registerForIndex[index];
-+    }
-+
-+    static unsigned toIndex(GPRReg reg)
-+    {
-+        ASSERT(reg != InvalidGPRReg);
-+        ASSERT(reg < 16);
-+        static const unsigned indexForRegister[16] = { InvalidIndex, InvalidIndex, 0, 1, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 2, 3, 4, 5 };
-+        unsigned result = indexForRegister[reg];
-+        ASSERT(result != InvalidIndex);
-+        return result;
-+    }
-+
-+    static const char* debugName(GPRReg reg)
-+    {
-+        ASSERT(reg != InvalidGPRReg);
-+        ASSERT(reg < 16);
-+        static const char* nameForRegister[16] = {
-+            "zero", "at", "v0", "v1",
-+            "a0", "a1", "a2", "a3",
-+            "t0", "t1", "t2", "t3",
-+            "t4", "t5", "t6", "t7"
-+        };
-+        return nameForRegister[reg];
-+    }
-+private:
-+
-+    static const unsigned InvalidIndex = 0xffffffff;
-+};
-+
-+#endif
-+
- typedef RegisterBank<GPRInfo>::iterator gpr_iterator;
- 
- } } // namespace JSC::DFG
-diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-index ea33f38..247274b 100644
---- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-@@ -1241,7 +1241,7 @@ public:
- 
- // EncodedJSValue in JSVALUE32_64 is a 64-bit integer. When being compiled in ARM EABI, it must be aligned even-numbered register (r0, r2 or [sp]).
- // To avoid assemblies from using wrong registers, let's occupy r1 or r3 with a dummy argument when necessary.
--#if COMPILER_SUPPORTS(EABI) && CPU(ARM)
-+#if (COMPILER_SUPPORTS(EABI) && CPU(ARM)) || CPU(MIPS)
- #define EABI_32BIT_DUMMY_ARG      TrustedImm32(0),
- #else
- #define EABI_32BIT_DUMMY_ARG
-@@ -1691,7 +1691,7 @@ public:
-     }
- #endif
-     
--#if !defined(NDEBUG) && !CPU(ARM)
-+#if !defined(NDEBUG) && !CPU(ARM) && !CPU(MIPS)
-     void prepareForExternalCall()
-     {
-         // We're about to call out to a "native" helper function. The helper
-diff --git a/Source/JavaScriptCore/jit/JSInterfaceJIT.h b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-index 7fdeaf0..48ad6b2 100644
---- a/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-+++ b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-@@ -125,6 +125,10 @@ namespace JSC {
-         static const RegisterID cachedResultRegister = MIPSRegisters::v0;
-         static const RegisterID firstArgumentRegister = MIPSRegisters::a0;
-         
-+#if ENABLE(VALUE_PROFILER)
-+        static const RegisterID bucketCounterRegister = MIPSRegisters::s3;
-+#endif
-+
-         // regT0 must be v0 for returning a 32-bit value.
-         static const RegisterID regT0 = MIPSRegisters::v0;
-         
-diff --git a/Source/JavaScriptCore/runtime/JSGlobalData.h b/Source/JavaScriptCore/runtime/JSGlobalData.h
-index 5d47ab9..c02f336 100644
---- a/Source/JavaScriptCore/runtime/JSGlobalData.h
-+++ b/Source/JavaScriptCore/runtime/JSGlobalData.h
-@@ -141,14 +141,18 @@ namespace JSC {
-             return result;
-         }
- 
--        static size_t allocationSize(size_t bufferSize) { return sizeof(size_t) + bufferSize; }
-+        static size_t allocationSize(size_t bufferSize) { return sizeof(ScratchBuffer) + bufferSize; }
-         void setActiveLength(size_t activeLength) { m_activeLength = activeLength; }
-         size_t activeLength() const { return m_activeLength; };
-         size_t* activeLengthPtr() { return &m_activeLength; };
-         void* dataBuffer() { return m_buffer; }
- 
-         size_t m_activeLength;
-+#if CPU(MIPS) && (defined WTF_MIPS_ARCH_REV && WTF_MIPS_ARCH_REV == 2)
-+        void* m_buffer[0] __attribute__((aligned(8)));
-+#else
-         void* m_buffer[0];
-+#endif
-     };
- #if COMPILER(MSVC)
- #pragma warning(pop)
-diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
-index 1698247..2d90359 100644
---- a/Source/WTF/wtf/Platform.h
-+++ b/Source/WTF/wtf/Platform.h
-@@ -818,6 +818,10 @@
- #if CPU(ARM_TRADITIONAL)
- #define ENABLE_DFG_JIT 1
- #endif
-+/* Enable the DFG JIT on MIPS. */
-+#if CPU(MIPS)
-+#define ENABLE_DFG_JIT 1
-+#endif
- #endif
- 
- /* If the jit is not available, enable the LLInt C Loop: */
--- 
-1.8.3.2
-
diff --git a/package/webkit/webkit-0008-support-bison-3.0.patch b/package/webkit/webkit-0008-support-bison-3.0.patch
deleted file mode 100644
index c081b20..0000000
--- a/package/webkit/webkit-0008-support-bison-3.0.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-ANGLE doesn't build with bison 3.0
-
-Author: allan.jensen at digia.com
-?https://bugs.webkit.org/show_bug.cgi?id=119798
-Reviewed by Antti Koivisto.
-Make glslang.y compatible with bison 3.0, by using %lex-param
-to set YYLEX_PARAM and getting rid of useless YYID macro.
-
-From upstream: http://trac.webkit.org/changeset/154109
-[Arnout: adapted to our older webkit version]
-Signed-off-by: Arnout Vandecaeppelle (Essensium/Mind) <arnout@mind.be>
----
-Index: trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y
-===================================================================
---- trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y	(revision 154108)
-+++ trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y	(revision 154109)
-@@ -48,4 +48,5 @@
- %pure-parser
- %parse-param {TParseContext* context}
-+%lex-param {YYLEX_PARAM}
- 
- %union {
diff --git a/package/webkit/webkit.mk b/package/webkit/webkit.mk
index 6b04ccd..c4b794c 100644
--- a/package/webkit/webkit.mk
+++ b/package/webkit/webkit.mk
@@ -4,69 +4,58 @@
 #
 ################################################################################
 
-WEBKIT_VERSION = 1.11.5
+WEBKIT_VERSION = 2.4.3
 WEBKIT_SITE = http://www.webkitgtk.org/releases
 WEBKIT_SOURCE = webkitgtk-$(WEBKIT_VERSION).tar.xz
 WEBKIT_INSTALL_STAGING = YES
-WEBKIT_DEPENDENCIES = host-ruby host-flex host-bison host-gperf enchant harfbuzz \
-	icu jpeg libcurl libgail libsecret libsoup libxml2 libxslt libgtk2 sqlite webp
+WEBKIT_DEPENDENCIES = host-ruby host-flex host-bison host-gperf enchant \
+	harfbuzz icu jpeg libcurl libgail libsecret libsoup libxml2 libxslt \
+	sqlite webp
 
 WEBKIT_DEPENDENCIES += \
 	$(if $(BR_PACKAGE_XLIB_LIBXCOMPOSITE),xlib_libXcomposite) \
 	$(if $(BR_PACKAGE_XLIB_LIBXDAMAGE),xlib_libXdamage)
 
-# webkit-disable-tests.patch changes configure.ac therefore autoreconf required
-WEBKIT_AUTORECONF = YES
-WEBKIT_AUTORECONF_OPT = -I $(@D)/Source/autotools
-
-# parallel make install deadlocks with make 3.81
-WEBKIT_INSTALL_STAGING_OPT = -j1 DESTDIR=$(STAGING_DIR) install
-WEBKIT_INSTALL_TARGET_OPT = -j1 DESTDIR=$(TARGET_DIR) install
-
-# Does not build and it's disabled by default
-# in newer releases
-define DISABLE_INDEXED_DATABASE
-	$(SED) '/ENABLE_INDEXED_DATABASE/s:1:0:' \
-			$(@D)/Source/WebCore/GNUmakefile.features.am
-endef
-
-WEBKIT_PRE_CONFIGURE_HOOKS += DISABLE_INDEXED_DATABASE
-
-# Give explicit path to icu-config, and silence gazillions of warnings
-# with recent gcc versions.
+# Give explicit path to icu-config and prevent ar to make thin archives, fixing
+# error: `x' cannot be used on thin archives
 WEBKIT_CONF_ENV = ac_cv_path_icu_config=$(STAGING_DIR)/usr/bin/icu-config \
-	CFLAGS="$(TARGET_CFLAGS) -Wno-cast-align -Wno-sign-compare" \
-	CXXFLAGS="$(TARGET_CXXFLAGS) -Wno-cast-align -Wno-sign-compare" \
 	AR_FLAGS="cru"
 
 WEBKIT_CONF_OPT += \
-	--with-gtk=2.0 \
 	--disable-geolocation \
-	--disable-webkit2 \
 	--disable-glibtest \
 	--disable-video \
-	--disable-gtk-doc-html \
-	--disable-tests
+	--disable-web-audio \
+	--disable-gtk-doc-html
 
-# Xorg Dependencies
-WEBKIT_CONF_OPT += --with-target=x11
+# X.org dependencies only
+WEBKIT_CONF_OPT += --enable-x11-target
 WEBKIT_DEPENDENCIES += xlib_libXt
 
-ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy)
-WEBKIT_CONF_OPT += --enable-gles2
-WEBKIT_DEPENDENCIES += libegl libgles
+ifeq ($(BR2_PACKAGE_LIBGTK3),y)
+WEBKIT_CONF_OPT += \
+	--with-gtk=3.0 \
+	--enable-webkit2
+WEBKIT_DEPENDENCIES += libgtk3
 else
-WEBKIT_CONF_OPT += --disable-gles2
+WEBKIT_CONF_OPT += \
+	--with-gtk=2.0 \
+	--disable-webkit2
+WEBKIT_DEPENDENCIES += libgtk2
 endif
 
-# gles/egl support is prefered over opengl by webkit configure
 ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-WEBKIT_CONF_OPT += --with-acceleration-backend=opengl
+WEBKIT_CONF_OPT += --enable-glx
 WEBKIT_DEPENDENCIES += libgl
+else ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy)
+WEBKIT_CONF_OPT += --enable-gles2
+WEBKIT_DEPENDENCIES += libegl libgles
 else
-# OpenGL/glx is auto-detected due to the presence of gl.h/glx.h, which is not
-# enough, so disable glx and the use of the OpenGL acceleration backend here
-WEBKIT_CONF_OPT += --disable-glx --with-acceleration-backend=none
+WEBKIT_CONF_OPT += \
+	--disable-glx \
+	--disable-gles2 \
+	--disable-webgl \
+	--disable-accelerated-compositing
 endif
 
 $(eval $(autotools-package))
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 8/9] libsoup: add libsoup-gnome support
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (6 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 7/9] webkit: bump to version 2.4.3 Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 13:57 ` [Buildroot] [RFC 9/9] midori: bump to version 0.5.8 Hadrien Boutteville
  2014-07-15 21:21 ` [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Thomas Petazzoni
  9 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

libsoup can build a libsoup-gnome library. Add support for
libsoup-gnome as it is a dependency of Midori.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/libsoup/Config.in  | 5 +++++
 package/libsoup/libsoup.mk | 8 +++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/package/libsoup/Config.in b/package/libsoup/Config.in
index 874f50c..bc0ba95 100644
--- a/package/libsoup/Config.in
+++ b/package/libsoup/Config.in
@@ -15,6 +15,11 @@ config BR2_PACKAGE_LIBSOUP
 
 if BR2_PACKAGE_LIBSOUP
 
+config BR2_PACKAGE_LIBSOUP_GNOME
+	bool "libsoup-gnome"
+	help
+	  Build libsoup-gnome library.
+
 config BR2_PACKAGE_LIBSOUP_SSL
 	bool "https support"
 	select BR2_PACKAGE_GLIB_NETWORKING
diff --git a/package/libsoup/libsoup.mk b/package/libsoup/libsoup.mk
index 11585c8..abc8ac5 100644
--- a/package/libsoup/libsoup.mk
+++ b/package/libsoup/libsoup.mk
@@ -18,11 +18,17 @@ ifneq ($(BR2_INET_IPV6),y)
 LIBSOUP_CONF_ENV += soup_cv_ipv6=no
 endif
 
-LIBSOUP_CONF_OPT = --disable-glibtest --without-gnome
+LIBSOUP_CONF_OPT = --disable-glibtest
 
 LIBSOUP_DEPENDENCIES = host-pkgconf host-libglib2 \
        libglib2 libxml2 sqlite host-intltool
 
+ifeq ($(BR2_PACKAGE_LIBSOUP_GNOME),y)
+LIBSOUP_CONF_OPT += --with-gnome
+else
+LIBSOUP_CONF_OPT += --without-gnome
+endif
+
 ifeq ($(BR2_PACKAGE_LIBSOUP_SSL),y)
 LIBSOUP_DEPENDENCIES += glib-networking
 else
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 9/9] midori: bump to version 0.5.8
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (7 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 8/9] libsoup: add libsoup-gnome support Hadrien Boutteville
@ 2014-07-08 13:57 ` Hadrien Boutteville
  2014-07-08 16:02   ` Hadrien Boutteville
  2014-07-15 21:21 ` [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Thomas Petazzoni
  9 siblings, 1 reply; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 13:57 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/midori/Config.in                           | 15 ++++---
 .../midori-0001-remove-libnotify-dependency.patch  | 27 ++++++++++++
 package/midori/midori.mk                           | 51 +++++++++-------------
 3 files changed, 57 insertions(+), 36 deletions(-)
 create mode 100644 package/midori/midori-0001-remove-libnotify-dependency.patch

diff --git a/package/midori/Config.in b/package/midori/Config.in
index c3b5a1b..821b306 100644
--- a/package/midori/Config.in
+++ b/package/midori/Config.in
@@ -1,20 +1,23 @@
 config BR2_PACKAGE_MIDORI
 	bool "midori"
 	select BR2_PACKAGE_WEBKIT
-	select BR2_PACKAGE_LIBSEXY
+	select BR2_PACKAGE_LIBSOUP
+	select BR2_PACKAGE_LIBSOUP_GNOME
+	select BR2_PACKAGE_SQLITE
+	select BR2_PACKAGE_LIBXML2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
-	depends on BR2_PACKAGE_LIBGTK2
+	depends on BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3
 	depends on BR2_INSTALL_LIBSTDCPP # webkit
 	depends on BR2_TOOLCHAIN_HAS_THREADS # webkit -> enchant -> libglib2
-	depends on BR2_USE_WCHAR	 # webkit
+	depends on BR2_USE_WCHAR # webkit, libsoup -> libglib2
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	help
 	  Midori is a lightweight web browser based on WebKit
 
 	  http://software.twotoasts.de/?page=midori
 
-comment "midori needs libgtk2 and a toolchain w/ C++, wchar, threads"
+comment "midori needs libgtk2 or libgtk3 and a toolchain w/ C++, wchar, threads"
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
-		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_LIBGTK2
+		!BR2_TOOLCHAIN_HAS_THREADS || \
+		!(BR2_PACKAGE_LIBGTK2 || BR2_PACKAGE_LIBGTK3)
diff --git a/package/midori/midori-0001-remove-libnotify-dependency.patch b/package/midori/midori-0001-remove-libnotify-dependency.patch
new file mode 100644
index 0000000..edd1e17
--- /dev/null
+++ b/package/midori/midori-0001-remove-libnotify-dependency.patch
@@ -0,0 +1,27 @@
+Remove the libnotify dependency.
+
+For now there is no libnotify package in Buildroot and this feature does not
+seem necessary.
+
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -143,16 +143,7 @@
+     endif ()
+ endif ()
+ 
+-if (WIN32)
+-    add_definitions("-DLIBNOTIFY_VERSION=\"No\"")
+-else ()
+-    pkg_check_modules(NOTIFY REQUIRED libnotify)
+-    add_definitions("-DLIBNOTIFY_VERSION=\"${NOTIFY_VERSION}\"")
+-    add_definitions("-DHAVE_LIBNOTIFY")
+-    set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${NOTIFY_INCLUDE_DIRS}")
+-    set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${NOTIFY_LIBRARIES}")
+-    set(PKGS ${PKGS} libnotify)
+-endif ()
++add_definitions("-DLIBNOTIFY_VERSION=\"No\"")
+ 
+ option(USE_GTK3 "Use GTK+3" OFF)
+ option(HALF_BRO_INCOM_WEBKIT2 "Serve as a guniea pig" OFF)
diff --git a/package/midori/midori.mk b/package/midori/midori.mk
index d55f5f1..c42c60a 100644
--- a/package/midori/midori.mk
+++ b/package/midori/midori.mk
@@ -4,45 +4,36 @@
 #
 ################################################################################
 
-MIDORI_VERSION_MAJOR = 0.4
-MIDORI_VERSION = $(MIDORI_VERSION_MAJOR).6
-MIDORI_SOURCE = midori-$(MIDORI_VERSION).tar.bz2
-MIDORI_SITE = http://archive.xfce.org/src/apps/midori/$(MIDORI_VERSION_MAJOR)/
+MIDORI_VERSION = 0.5.8
+MIDORI_SOURCE = midori_$(MIDORI_VERSION)_all_.tar.bz2
+MIDORI_SITE = http://midori-browser.org/downloads/
 MIDORI_LICENSE = LGPLv2.1+
 MIDORI_LICENSE_FILES = COPYING
 MIDORI_DEPENDENCIES = \
 	host-intltool \
 	host-pkgconf \
 	host-vala \
-	host-python \
-	libgtk2 \
-	libsexy \
+	libsoup \
+	sqlite \
+	libxml2 \
 	webkit \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
-	$(if $(BR2_PACKAGE_LIBICONV),libiconv)
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
-ifneq ($(BR2_PACKAGE_XORG7),y)
-define MIDORI_WITHOUT_X11
-	$(SED) "s/check_pkg ('x11')/#check_pkg ('x11')/" $(@D)/wscript
-endef
-endif
-
-define MIDORI_CONFIGURE_CMDS
-	$(MIDORI_WITHOUT_X11)
-	(cd $(@D); \
-		$(TARGET_CONFIGURE_OPTS)	\
-		$(HOST_DIR)/usr/bin/python2 ./waf configure \
-		--prefix=/usr			\
-		--disable-libnotify		\
-       )
-endef
+MIDORI_CONF_OPT = -DUSE_ZEITGEIST=OFF
 
-define MIDORI_BUILD_CMDS
-       (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
-endef
+ifeq ($(BR2_PACKAGE_GTK3),y)
+# The actual WebKit logic in Buildroot enable webkit2 when WebKit uses GTK+3
+MIDORI_CONF_OPT += \
+	-DUSE_GTK3=ON \
+	-DHALF_BRO_INCOM_WEBKIT2=ON
+MIDORI_DEPENDENCIES += libgtk3
+else
+MIDORI_DEPENDENCIES += libgtk2
+endif
 
-define MIDORI_INSTALL_TARGET_CMDS
-       (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install)
+define MIDORI_EXTRACT_CMDS
+	$(call suitable-extractor,$(MIDORI_SOURCE)) $(DL_DIR)/$(MIDORI_SOURCE) \
+		| $(TAR) $(TAR_STRIP_COMPONENTS)=0 -C $(@D) $(TAR_OPTIONS) -
 endef
 
-$(eval $(generic-package))
+$(eval $(cmake-package))
-- 
2.0.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 9/9] midori: bump to version 0.5.8
  2014-07-08 13:57 ` [Buildroot] [RFC 9/9] midori: bump to version 0.5.8 Hadrien Boutteville
@ 2014-07-08 16:02   ` Hadrien Boutteville
  0 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-08 16:02 UTC (permalink / raw)
  To: buildroot

Hello all,

On Tue,  8 Jul 2014 15:57:12 +0200, Hadrien Boutteville wrote:
[...]
> +ifeq ($(BR2_PACKAGE_GTK3),y)

Argh! I made a mistake in a last minute untested modification... It's of
course BR2_PACKAGE_LIBGTK3.

> +# The actual WebKit logic in Buildroot enable webkit2 when WebKit uses GTK+3
> +MIDORI_CONF_OPT += \
> +	-DUSE_GTK3=ON \
> +	-DHALF_BRO_INCOM_WEBKIT2=ON
> +MIDORI_DEPENDENCIES += libgtk3
> +else
> +MIDORI_DEPENDENCIES += libgtk2
> +endif
>  
> -define MIDORI_INSTALL_TARGET_CMDS
> -       (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install)
> +define MIDORI_EXTRACT_CMDS
> +	$(call suitable-extractor,$(MIDORI_SOURCE)) $(DL_DIR)/$(MIDORI_SOURCE) \
> +		| $(TAR) $(TAR_STRIP_COMPONENTS)=0 -C $(@D) $(TAR_OPTIONS) -
>  endef
>  
> -$(eval $(generic-package))
> +$(eval $(cmake-package))
> 

Regards,

Hadrien

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 6/9] libgtk3: new package
  2014-07-08 13:57 ` [Buildroot] [RFC 6/9] libgtk3: " Hadrien Boutteville
@ 2014-07-08 17:34   ` Eric Le Bihan
  2014-07-16 12:22     ` Hadrien Boutteville
  2014-07-17 14:09     ` Hadrien Boutteville
  0 siblings, 2 replies; 16+ messages in thread
From: Eric Le Bihan @ 2014-07-08 17:34 UTC (permalink / raw)
  To: buildroot

Hi!
On Tue, Jul 08, 2014 at 03:57:09PM +0200, Hadrien Boutteville wrote:
> Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
>  package/Config.in                                  |   1 +
>  package/libgtk3/Config.in                          |  47 ++++++
>  package/libgtk3/libgtk3-0001-no-gtk-doc.patch      |  11 ++
>  .../libgtk3-0002-add-file-introspection-m4.patch   | 100 +++++++++++
>  package/libgtk3/libgtk3.mk                         | 184 +++++++++++++++++++++
>  5 files changed, 343 insertions(+)
>  create mode 100644 package/libgtk3/Config.in
>  create mode 100644 package/libgtk3/libgtk3-0001-no-gtk-doc.patch
>  create mode 100644 package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
>  create mode 100644 package/libgtk3/libgtk3.mk
>
[snip]
> diff --git a/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch b/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
> new file mode 100644
> index 0000000..3cd0569
> --- /dev/null
I guess the addition of this file is needed because you have to perform an
autoreconf, but GOBJECT_INTROSPECTION_CHECK could not be resolved, right?

Maybe you can avoid it by patching configure.ac, to add a check, as performed
in Systemd:

  m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
           [GOBJECT_INTROSPECTION_CHECK([1.31.1])],
           [AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
            enable_introspection=no])

> diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk
> new file mode 100644
> index 0000000..0b61e25
> --- /dev/null
> +++ b/package/libgtk3/libgtk3.mk
> @@ -0,0 +1,184 @@
> +################################################################################
> +#
> +# libgtk3
> +#
> +################################################################################
> +
> +LIBGTK3_VERSION_MAJOR = 3.12
> +LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2
> +
> +LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
> +LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
> +LIBGTK3_LICENSE = LGPLv2+
> +LIBGTK3_LICENSE_FILES = COPYING
> +LIBGTK3_INSTALL_STAGING = YES
> +LIBGTK3_INSTALL_TARGET = YES
> +
> +LIBGTK3_AUTORECONF = YES
> +
> +LIBGTK3_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
> +		glib_cv_uscore=no \
> +		ac_cv_func_strtod=yes \
> +		ac_fsusage_space=yes \
> +		fu_cv_sys_stat_statfs2_bsize=yes \
> +		ac_cv_func_closedir_void=no \
> +		ac_cv_func_getloadavg=no \
> +		ac_cv_lib_util_getloadavg=no \
> +		ac_cv_lib_getloadavg_getloadavg=no \
> +		ac_cv_func_getgroups=yes \
> +		ac_cv_func_getgroups_works=yes \
> +		ac_cv_func_chown_works=yes \
> +		ac_cv_have_decl_euidaccess=no \
> +		ac_cv_func_euidaccess=no \
> +		ac_cv_have_decl_strnlen=yes \
> +		ac_cv_func_strnlen_working=yes \
> +		ac_cv_func_lstat_dereferences_slashed_symlink=yes \
> +		ac_cv_func_lstat_empty_string_bug=no \
> +		ac_cv_func_stat_empty_string_bug=no \
> +		vb_cv_func_rename_trailing_slash_bug=no \
> +		ac_cv_have_decl_nanosleep=yes \
> +		jm_cv_func_nanosleep_works=yes \
> +		gl_cv_func_working_utimes=yes \
> +		ac_cv_func_utime_null=yes \
> +		ac_cv_have_decl_strerror_r=yes \
> +		ac_cv_func_strerror_r_char_p=no \
> +		jm_cv_func_svid_putenv=yes \
> +		ac_cv_func_getcwd_null=yes \
> +		ac_cv_func_getdelim=yes \
> +		ac_cv_func_mkstemp=yes \
> +		utils_cv_func_mkstemp_limitations=no \
> +		utils_cv_func_mkdir_trailing_slash_bug=no \
> +		jm_cv_func_gettimeofday_clobber=no \
> +		gl_cv_func_working_readdir=yes \
> +		jm_ac_cv_func_link_follows_symlink=no \
> +		utils_cv_localtime_cache=no \
> +		ac_cv_struct_st_mtim_nsec=no \
> +		gl_cv_func_tzset_clobber=no \
> +		gl_cv_func_getcwd_null=yes \
> +		gl_cv_func_getcwd_path_max=yes \
> +		ac_cv_func_fnmatch_gnu=yes \
> +		am_getline_needs_run_time_check=no \
> +		am_cv_func_working_getline=yes \
> +		gl_cv_func_mkdir_trailing_slash_bug=no \
> +		gl_cv_func_mkstemp_limitations=no \
> +		ac_cv_func_working_mktime=yes \
> +		jm_cv_func_working_re_compile_pattern=yes \
> +		ac_use_included_regex=no gl_cv_c_restrict=no \
> +		ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
> +		ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
> +		ac_cv_prog_F77=no \
> +		ac_cv_path_CUPS_CONFIG=no

I still wonder why all these definitions are needed... I manage to build
libgtk3 using a uclibc-based toolchain without them (except for
ac_cv_path_GTK_UPDATE_ICON_CACHE and ac_cv_path_GDK_PIXBUF_CSOURCE of course)!

Anyone with some background history on this?

> +
> +LIBGTK3_CONF_OPT = --disable-glibtest \
> +		--enable-explicit-deps=no \
> +		--enable-gtk2-dependency \
> +		--disable-debug
> +
> +LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 libglib2 cairo pango atk \
> +		gdk-pixbuf
[snip]
> +
> +# We do not build a full version of libgtk3 for the host, because that
> +# requires compiling Cairo, Pango, ATK and X.org for the
> +# host. Therefore, we patch it to remove dependencies, and we hack the
> +# build to only build gdk-pixbuf-from-source and
> +# gtk-update-icon-cache, which are the host tools needed to build Gtk
> +# for the target.
> +
> +HOST_LIBGTK3_DEPENDENCIES = host-libglib2 host-libpng host-gdk-pixbuf
> +
> +HOST_LIBGTK3_CFLAGS = $(shell $(HOST_DIR)/usr/bin/pkg-config \
> +	--cflags --libs gdk-pixbuf-2.0)

When experimenting on my side, I've noticed that gtk+ >= 3.10 can build a
native version of gtk-update-icon-cache if --enable-gtk2-dependency=no is set
when invoking './configure'.

Unfortunately, if the target toolchain is based on uClibc, the macro
AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and will add
'-lintl' to the default list of libraries for the linker (used for both native
and target builds).

But no native version of libintl is available (the functions are provided by
glibc): gtk-update-icon-cache will not build...

So, Buildroot must still build its own version, as done in your patch.

Best regards,
ELB

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3
  2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
                   ` (8 preceding siblings ...)
  2014-07-08 13:57 ` [Buildroot] [RFC 9/9] midori: bump to version 0.5.8 Hadrien Boutteville
@ 2014-07-15 21:21 ` Thomas Petazzoni
  2014-07-16 12:25   ` Hadrien Boutteville
  9 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2014-07-15 21:21 UTC (permalink / raw)
  To: buildroot

Dear Hadrien Boutteville,

On Tue,  8 Jul 2014 15:57:03 +0200, Hadrien Boutteville wrote:

> This series mainly does two things: add libgtk3 and bump webkit.
> 
>  - 1..5: requirements and dependencies for libgtk3
>  - 6: add libgtk3
>  - 7: bump webkit
>  - 8: is required by Midori
>  - 9: bump Midori to test WebKit 2.4.3

I've applied patches 1, 2 and 3 of your series. For the rest of the
series, I'm waiting for some more review. But at least having the
libglib and pango bumps applied will give them some testing in the
autobuilders. Get ready to fix issues if some appears.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 6/9] libgtk3: new package
  2014-07-08 17:34   ` Eric Le Bihan
@ 2014-07-16 12:22     ` Hadrien Boutteville
  2014-07-17 14:09     ` Hadrien Boutteville
  1 sibling, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-16 12:22 UTC (permalink / raw)
  To: buildroot

Hi,

On Tue, 8 Jul 2014 19:34:57 +0200, Eric Le Bihan wrote:
>> diff --git a/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch b/package/libgtk3/libgtk3-0002-add-file-introspection-m4.patch
>> new file mode 100644
>> index 0000000..3cd0569
>> --- /dev/null
> I guess the addition of this file is needed because you have to perform an
> autoreconf, but GOBJECT_INTROSPECTION_CHECK could not be resolved, right?

Yes. It's the solution given by the GTK+3 doc.

> Maybe you can avoid it by patching configure.ac, to add a check, as performed
> in Systemd:
> 
>   m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
>            [GOBJECT_INTROSPECTION_CHECK([1.31.1])],
>            [AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
>             enable_introspection=no])

I will test, I actually prefer this solution rather than adding a file.
Thanks!

>> +
>> +# We do not build a full version of libgtk3 for the host, because that
>> +# requires compiling Cairo, Pango, ATK and X.org for the
>> +# host. Therefore, we patch it to remove dependencies, and we hack the
>> +# build to only build gdk-pixbuf-from-source and
>> +# gtk-update-icon-cache, which are the host tools needed to build Gtk
>> +# for the target.

I realized that I forget to modify the comment for this part :-/. This
comment was for my first attempt with a patch which reduced dependencies
like for libgtk2. Now we don't patch to reduce dependencies and we just
manually build gtk-update-icon-cache to get rid of the dependencies and
the configure.

>> +HOST_LIBGTK3_DEPENDENCIES = host-libglib2 host-libpng host-gdk-pixbuf
>> +
>> +HOST_LIBGTK3_CFLAGS = $(shell $(HOST_DIR)/usr/bin/pkg-config \
>> +	--cflags --libs gdk-pixbuf-2.0)
> 
> When experimenting on my side, I've noticed that gtk+ >= 3.10 can build a
> native version of gtk-update-icon-cache if --enable-gtk2-dependency=no is set
> when invoking './configure'.
> 
> Unfortunately, if the target toolchain is based on uClibc, the macro
> AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and will add
> '-lintl' to the default list of libraries for the linker (used for both native
> and target builds).
> 
> But no native version of libintl is available (the functions are provided by
> glibc): gtk-update-icon-cache will not build...
> 
> So, Buildroot must still build its own version, as done in your patch.

Yes, and your solution was better than my first patch ;-).

Thanks,

Hadrien

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3
  2014-07-15 21:21 ` [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Thomas Petazzoni
@ 2014-07-16 12:25   ` Hadrien Boutteville
  0 siblings, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-16 12:25 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

On Tue, 15 Jul 2014 23:21:13 +0200, Thomas Petazzoni wrote:
> Dear Hadrien Boutteville,
> 
> On Tue,  8 Jul 2014 15:57:03 +0200, Hadrien Boutteville wrote:
> 
>> This series mainly does two things: add libgtk3 and bump webkit.
>>
>>  - 1..5: requirements and dependencies for libgtk3
>>  - 6: add libgtk3
>>  - 7: bump webkit
>>  - 8: is required by Midori
>>  - 9: bump Midori to test WebKit 2.4.3
> 
> I've applied patches 1, 2 and 3 of your series. For the rest of the
> series, I'm waiting for some more review. But at least having the
> libglib and pango bumps applied will give them some testing in the
> autobuilders. Get ready to fix issues if some appears.

Sure, thanks!

Hadrien

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [RFC 6/9] libgtk3: new package
  2014-07-08 17:34   ` Eric Le Bihan
  2014-07-16 12:22     ` Hadrien Boutteville
@ 2014-07-17 14:09     ` Hadrien Boutteville
  1 sibling, 0 replies; 16+ messages in thread
From: Hadrien Boutteville @ 2014-07-17 14:09 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 8 Jul 2014 19:34:57 +0200, Eric Le Bihan wrote:
>> +LIBGTK3_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
>> +		glib_cv_uscore=no \
>> +		ac_cv_func_strtod=yes \
>> +		ac_fsusage_space=yes \
>> +		fu_cv_sys_stat_statfs2_bsize=yes \
>> +		ac_cv_func_closedir_void=no \
>> +		ac_cv_func_getloadavg=no \
>> +		ac_cv_lib_util_getloadavg=no \
>> +		ac_cv_lib_getloadavg_getloadavg=no \
>> +		ac_cv_func_getgroups=yes \
>> +		ac_cv_func_getgroups_works=yes \
>> +		ac_cv_func_chown_works=yes \
>> +		ac_cv_have_decl_euidaccess=no \
>> +		ac_cv_func_euidaccess=no \
>> +		ac_cv_have_decl_strnlen=yes \
>> +		ac_cv_func_strnlen_working=yes \
>> +		ac_cv_func_lstat_dereferences_slashed_symlink=yes \
>> +		ac_cv_func_lstat_empty_string_bug=no \
>> +		ac_cv_func_stat_empty_string_bug=no \
>> +		vb_cv_func_rename_trailing_slash_bug=no \
>> +		ac_cv_have_decl_nanosleep=yes \
>> +		jm_cv_func_nanosleep_works=yes \
>> +		gl_cv_func_working_utimes=yes \
>> +		ac_cv_func_utime_null=yes \
>> +		ac_cv_have_decl_strerror_r=yes \
>> +		ac_cv_func_strerror_r_char_p=no \
>> +		jm_cv_func_svid_putenv=yes \
>> +		ac_cv_func_getcwd_null=yes \
>> +		ac_cv_func_getdelim=yes \
>> +		ac_cv_func_mkstemp=yes \
>> +		utils_cv_func_mkstemp_limitations=no \
>> +		utils_cv_func_mkdir_trailing_slash_bug=no \
>> +		jm_cv_func_gettimeofday_clobber=no \
>> +		gl_cv_func_working_readdir=yes \
>> +		jm_ac_cv_func_link_follows_symlink=no \
>> +		utils_cv_localtime_cache=no \
>> +		ac_cv_struct_st_mtim_nsec=no \
>> +		gl_cv_func_tzset_clobber=no \
>> +		gl_cv_func_getcwd_null=yes \
>> +		gl_cv_func_getcwd_path_max=yes \
>> +		ac_cv_func_fnmatch_gnu=yes \
>> +		am_getline_needs_run_time_check=no \
>> +		am_cv_func_working_getline=yes \
>> +		gl_cv_func_mkdir_trailing_slash_bug=no \
>> +		gl_cv_func_mkstemp_limitations=no \
>> +		ac_cv_func_working_mktime=yes \
>> +		jm_cv_func_working_re_compile_pattern=yes \
>> +		ac_use_included_regex=no gl_cv_c_restrict=no \
>> +		ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
>> +		ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
>> +		ac_cv_prog_F77=no \
>> +		ac_cv_path_CUPS_CONFIG=no
> 
> I still wonder why all these definitions are needed... I manage to build
> libgtk3 using a uclibc-based toolchain without them (except for
> ac_cv_path_GTK_UPDATE_ICON_CACHE and ac_cv_path_GDK_PIXBUF_CSOURCE of course)!
> 
> Anyone with some background history on this?

I missed this comment in my previous mail. In fact I don't know if these
definitions (apart ac_cv_path_GTK_UPDATE_ICON_CACHE and
ac_cv_path_GDK_PIXBUF_CSOURCE) are still needed. I'm not an expert for
that, I have just reused them from libgtk2 mainly because I didn't test
with uclibc-based toolchain. I saw you removed them from your patch, and
I just successfully build with an uclibc-based toolchain too, so I think
we can remove the extra definitions.

Thanks!

Hadrien

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2014-07-17 14:09 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-08 13:57 [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 1/9] libglib2: bump to version 2.40.0 Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 2/9] pango: bump to version 1.36.3 Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 3/9] cairo: add freetype and gobject support Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 4/9] at-spi2-core: new package Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 5/9] at-spi2-atk: " Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 6/9] libgtk3: " Hadrien Boutteville
2014-07-08 17:34   ` Eric Le Bihan
2014-07-16 12:22     ` Hadrien Boutteville
2014-07-17 14:09     ` Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 7/9] webkit: bump to version 2.4.3 Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 8/9] libsoup: add libsoup-gnome support Hadrien Boutteville
2014-07-08 13:57 ` [Buildroot] [RFC 9/9] midori: bump to version 0.5.8 Hadrien Boutteville
2014-07-08 16:02   ` Hadrien Boutteville
2014-07-15 21:21 ` [Buildroot] [RFC 0/9] Add libgtk3 and bump webkit to version 2.4.3 Thomas Petazzoni
2014-07-16 12:25   ` Hadrien Boutteville

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox