Use const instead G_CONST_RETURN, bug #379897 by Alexandre Rostovtsev.
authorPacho Ramos <pacho@gentoo.org>
Mon, 26 Sep 2011 12:21:02 +0000 (12:21 +0000)
committerPacho Ramos <pacho@gentoo.org>
Mon, 26 Sep 2011 12:21:02 +0000 (12:21 +0000)
Package-Manager: portage-2.1.10.19/cvs/Linux x86_64

x11-libs/gtk+/ChangeLog
x11-libs/gtk+/Manifest
x11-libs/gtk+/files/gtk+-3.0.12-use-const.patch [new file with mode: 0644]
x11-libs/gtk+/gtk+-3.0.12-r1.ebuild [new file with mode: 0644]

index 9e427a12f2ecdb38d0bc21871f5380ae5b29f7ee..40fb3627fb9e5f0659d30f27a02385e288b94ff6 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for x11-libs/gtk+
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/ChangeLog,v 1.531 2011/09/09 20:16:59 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/ChangeLog,v 1.532 2011/09/26 12:21:02 pacho Exp $
+
+*gtk+-3.0.12-r1 (26 Sep 2011)
+
+  26 Sep 2011; Pacho Ramos <pacho@gentoo.org> +gtk+-3.0.12-r1.ebuild,
+  +files/gtk+-3.0.12-use-const.patch:
+  Use const instead G_CONST_RETURN, bug #379897 by Alexandre Rostovtsev.
 
 *gtk+-2.24.6 (09 Sep 2011)
 
index 1ee072a5d07ca80c4f8b7e525c64375a32332626..0ef0cf2572dfe6ce87c523652570adce50c51042 100644 (file)
@@ -12,6 +12,7 @@ AUX gtk+-2.24.4-old-icons.patch 17368 RMD160 e7638f603a06234814b8b342584ab4e80a4
 AUX gtk+-2.24.5-background-repaint.patch 1884 RMD160 d20c7389127d7b6a6253c438c9b0a2563828b823 SHA1 9800e67a5457734871bb45d34e5b3724ee6e9708 SHA256 3573af25e8db2fb490b264f80cb9e617ee1a36e767e36e7bb1d830c0b715db93
 AUX gtk+-2.24.5-darwin-quartz-introspection.patch 1127 RMD160 9b08611d585fe88d8db310f91efdd22396f567d9 SHA1 d36be7be62307d1a6f4e64cd14d3da523af97488 SHA256 a0f91bf77bd2827c10c31c0f2d7de106254d3b053e5a2bf734e35bd814db3493
 AUX gtk+-3.0.11-darwin-quartz-introspection.patch 2515 RMD160 e03ad9794395099b729e4cba53135b34ace777d0 SHA1 deda072dc35c454facccc232493bca5a5150b443 SHA256 49f8e2f1635c3eb8d7a4b2d1039150fc573f6a931ad2b3736176691ad2df8faf
+AUX gtk+-3.0.12-use-const.patch 8069 RMD160 ca641c05aa678b046ec42a800c39ef80b9d9cf16 SHA1 19d46115ef68b3e77558bede23eb83853d9bc6c6 SHA256 4fbaf845da7aa757280711fc5e9a4b684b4f0f58ac78dc881336ca2cd0064749
 AUX gtk+-3.0.8-darwin-quartz.patch 579 RMD160 e7cee263b7edbf2d8cdfb848939c0f588b595567 SHA1 5196ef95f68080e2bd8a1582db7d61b0a65b0aac SHA256 2d30683f849be9be698424514341e814833c102c4f41d12cd02536cba62846fc
 AUX gtkrc 627 RMD160 3171e0c9132bb2a9119c51750702db23c4a5f076 SHA1 cdb4665e94e1b9e8bc3985390eecca463469c3b3 SHA256 22e4197e5976ed623233399049082383033b613176d77126d246a1f6cb747294
 AUX settings.ini 96 RMD160 ff8d7e28f097820b15ea1d2168d9405db1a5707b SHA1 92c3120655ba14f163846a22d5c94fa50b0eb437 SHA256 a42c86c26b5bfa0da806961e28cdff21da6e2f7c35febf67c67d7f2667658163
@@ -20,19 +21,21 @@ DIST gtk+-1.2.10.tar.gz 2868322 RMD160 9b38310d2768e947c4f6173db009243dd11db288
 DIST gtk+-2.24.4.tar.bz2 17607752 RMD160 56a6f731cfdc47686c71f8f6b4253484e08dd230 SHA1 c15a25ba49eb459b2c4cdc46baedf6cecf08cbcf SHA256 7d3033ad83647079977466d3e8f1a7533f47abd5cc693f01b8797ff43dd407a5
 DIST gtk+-2.24.5.tar.xz 13252580 RMD160 f0eb690c906166c5f0e296faac8fdb983955921b SHA1 eb1200fe42bd2d5e3dc1bdb69b524600cbc06df1 SHA256 d6b30889efbb9fab9aa598092d08887826a7b2a3069b3bd5155dede28d9866f3
 DIST gtk+-2.24.6.tar.xz 13173032 RMD160 5d78546b5f2aeb79d8fd8839911ee9a442e674e9 SHA1 da835834fe882be1893d0df41216e8141737b51b SHA256 8a026b545dc1fa0c1a69b395232ad7c8ee8fa260be5f7d9a2f2ffcd799efefca
+DIST gtk+-3.0.12-use-const2.patch.xz 12500 RMD160 2cebd73630f83530a76ac263d797e196032994ee SHA1 697b8d41ba24386acd1cfec1d733361901e797dd SHA256 f10b251a52a4f5d73b435315c94297dd30a4bc3c20a25bc947842bb214808cc4
 DIST gtk+-3.0.12.tar.xz 13104092 RMD160 c82d14e113ae287476f5887ca03b8b01b8d22e1b SHA1 1b87e12ef3dfe598ee757db1f5bdff6cd66e6558 SHA256 219fdea120897981840e909fac40d4d433fe061a37b12b9402e215c819ebeae9
 DIST introspection.m4.bz2 1181 RMD160 3648afa820c2ee7e240083076e1452285d043084 SHA1 e5188cc387d0d17feb77684feff7ff163779912f SHA256 69a2a57b12179159420825d1d44c74108014b0864c4d63500265639cfa9151ae
 EBUILD gtk+-1.2.10-r12.ebuild 2386 RMD160 ed251a32d854304c5d9622844d07f183f14c9bd5 SHA1 93a6ec39cde941b4939c04da955475d017a6ff6f SHA256 e4874d2dd01bc266e7e0f5b691fcf4e54f6bd3a79658dcec6d5374c5910aa78b
 EBUILD gtk+-2.24.4.ebuild 7474 RMD160 6423a1cb33e4f0493c39da224d2a125c45494c8a SHA1 d6d4caaf3ad58d7d81884d82b3fd6fbff6a15120 SHA256 08ae86596433eca5aa8cfa82f6eca0f0463fb4860d5ebfca1363dacb08eb4cc5
 EBUILD gtk+-2.24.5-r1.ebuild 7820 RMD160 8e63ef3d7752ab5ba7c7c34d808774d4004e30fa SHA1 d928f781289082e2a13a76864c4d818b4e1ad8d6 SHA256 3f4b00d8a827119a3e99dd3c91abb05365ee13831a33b21de3f9173bd68af979
 EBUILD gtk+-2.24.6.ebuild 7676 RMD160 b36290f910c27eee2fc2ddd0a4c506c71b92a6f3 SHA1 845a413728db1fc707b641175808ea97785c02ad SHA256 a02fc317af27b02b9dea43adab64c1845ae5f3a2b7ed346875cadd9e4f5d6ba2
+EBUILD gtk+-3.0.12-r1.ebuild 6176 RMD160 f3f36b5f594cbd4b13f98c3642a96bba50c03f36 SHA1 3d67af2fe8083ca21679dec69da57f735a11dc40 SHA256 2ae62b718db3383c50cdc17336b5e67744f9eed21ea86c1e5066fa2ea50b41dd
 EBUILD gtk+-3.0.12.ebuild 5924 RMD160 304c8786053b789687d2179b017e2bc8b6538943 SHA1 b15b6ffc22ae2c709af8249f8283d1150e209d20 SHA256 a28b2ead97e9a6d44d2aab8db2811befd406444ca7733ca5d4eb3851301f4c9e
-MISC ChangeLog 79526 RMD160 ec5f6d9dd8fe8c69de71eeed5ad840e661248298 SHA1 970d0b4ddc83e670f85f819b024b7b78934b6d00 SHA256 4bf4fad551f4866fcd5bd896251980f6a7e918d6b4d6fe18dbb41c45d7eba19f
+MISC ChangeLog 79739 RMD160 8393a7f64a411e2ac65029447950e03796b7f14e SHA1 4e058d07ff7af3bc11a4d43877f35a94e34c41eb SHA256 7c11c913d60bc66fb5b968cd54463011f209191f1d44bc72f24f928e19e8a675
 MISC metadata.xml 549 RMD160 8d6692e4cf18e0c75421ddef09e2881624c5ce3e SHA1 ce3ed4bec69816eb61b5ca9d48c2db396085a923 SHA256 2e7f82b302d91c37ecf915de09e4b85ef093b790baacbef0325b6fe9b1bb304b
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.17 (GNU/Linux)
 
-iEYEARECAAYFAk5qdEEACgkQCaWpQKGI+9SYugCbBTlD7kDcVSu9LMIo3iuruFRv
-bWAAnjerdit/kkQMdsjY8LUPcA+uTz5p
-=jve7
+iEUEARECAAYFAk6AbjMACgkQCaWpQKGI+9TF/ACYgIJpt/W7/zA2cQ5OAjDqp8pJ
+cACcC+aWHuZeBImjObKXpki6sGt6tRM=
+=zdkR
 -----END PGP SIGNATURE-----
diff --git a/x11-libs/gtk+/files/gtk+-3.0.12-use-const.patch b/x11-libs/gtk+/files/gtk+-3.0.12-use-const.patch
new file mode 100644 (file)
index 0000000..3cb51f8
--- /dev/null
@@ -0,0 +1,209 @@
+From 6c3d5c45bcd78b54c3641d6748f9e0e80c1fba46 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Javier=20Jard=C3=B3n?= <jjardon@gnome.org>
+Date: Mon, 6 Jun 2011 19:05:18 +0100
+Subject: [PATCH 1/2] gdk: Use const instead G_CONST_RETURN
+
+[Alexandre Rostovtsev <tetromino@gmail.com>: backport to 3.0.12]
+---
+ gdk/gdk.c                    |    4 ++--
+ gdk/gdkdevice.h              |    2 +-
+ gdk/gdkdisplay.c             |    2 +-
+ gdk/gdkdisplay.h             |    2 +-
+ gdk/gdkdisplayprivate.h      |    2 +-
+ gdk/gdkmain.h                |    4 ++--
+ gdk/win32/gdkdisplay-win32.c |    2 +-
+ gdk/x11/gdkdisplay-x11.c     |    4 ++--
+ gdk/x11/gdkproperty-x11.c    |    4 ++--
+ gdk/x11/gdkx11display.h      |    2 +-
+ gdk/x11/gdkx11property.h     |    4 ++--
+ 11 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/gdk/gdk.c b/gdk/gdk.c
+index 43d45f5..241683a 100644
+--- a/gdk/gdk.c
++++ b/gdk/gdk.c
+@@ -306,7 +306,7 @@ gdk_parse_args (int    *argc,
+  *
+  * Since: 2.2
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ gdk_get_display_arg_name (void)
+ {
+   if (!_gdk_display_arg_name)
+@@ -1039,7 +1039,7 @@ gdk_threads_add_timeout_seconds (guint       interval,
+  *
+  * Returns: the program class.
+  */
+-G_CONST_RETURN char *
++const char *
+ gdk_get_program_class (void)
+ {
+   return gdk_progclass;
+diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h
+index a6ceac0..9109d65 100644
+--- a/gdk/gdkdevice.h
++++ b/gdk/gdkdevice.h
+@@ -156,7 +156,7 @@ struct _GdkTimeCoord
+ GType                 gdk_device_get_type       (void) G_GNUC_CONST;
+-G_CONST_RETURN gchar *gdk_device_get_name       (GdkDevice *device);
++const gchar *         gdk_device_get_name       (GdkDevice *device);
+ gboolean              gdk_device_get_has_cursor (GdkDevice *device);
+ /* Functions to configure a device */
+diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
+index 1b8c7e7..f4095c2 100644
+--- a/gdk/gdkdisplay.c
++++ b/gdk/gdkdisplay.c
+@@ -1336,7 +1336,7 @@ gdk_display_get_device_manager (GdkDisplay *display)
+  *
+  * Since: 2.2
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ gdk_display_get_name (GdkDisplay *display)
+ {
+   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
+diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
+index 65daad1..3c4179e 100644
+--- a/gdk/gdkdisplay.h
++++ b/gdk/gdkdisplay.h
+@@ -44,7 +44,7 @@ G_BEGIN_DECLS
+ GType       gdk_display_get_type (void) G_GNUC_CONST;
+ GdkDisplay *gdk_display_open                (const gchar *display_name);
+-G_CONST_RETURN gchar * gdk_display_get_name (GdkDisplay *display);
++const gchar * gdk_display_get_name         (GdkDisplay *display);
+ gint        gdk_display_get_n_screens      (GdkDisplay  *display);
+ GdkScreen * gdk_display_get_screen         (GdkDisplay  *display,
+diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
+index 1126d96..2d48943 100644
+--- a/gdk/gdkdisplayprivate.h
++++ b/gdk/gdkdisplayprivate.h
+@@ -120,7 +120,7 @@ struct _GdkDisplayClass
+   GType window_type;          /* type for native windows for this display, set in class_init */
+-  G_CONST_RETURN gchar *     (*get_name)           (GdkDisplay *display);
++  const gchar *              (*get_name)           (GdkDisplay *display);
+   gint                       (*get_n_screens)      (GdkDisplay *display);
+   GdkScreen *                (*get_screen)         (GdkDisplay *display,
+                                                     gint        screen_num);
+diff --git a/gdk/gdkmain.h b/gdk/gdkmain.h
+index bcbe4d0..411b58f 100644
+--- a/gdk/gdkmain.h
++++ b/gdk/gdkmain.h
+@@ -50,7 +50,7 @@ gboolean              gdk_init_check                      (gint           *argc,
+ void                  gdk_add_option_entries_libgtk_only  (GOptionGroup   *group);
+ void                  gdk_pre_parse_libgtk_only           (void);
+-G_CONST_RETURN gchar *gdk_get_program_class               (void);
++const gchar *         gdk_get_program_class               (void);
+ void                  gdk_set_program_class               (const gchar    *program_class);
+ void                  gdk_notify_startup_complete         (void);
+@@ -64,7 +64,7 @@ G_GNUC_WARN_UNUSED_RESULT gint gdk_error_trap_pop         (void);
+ void                           gdk_error_trap_pop_ignored (void);
+-G_CONST_RETURN gchar *gdk_get_display_arg_name (void);
++const gchar *         gdk_get_display_arg_name (void);
+ /**
+  * gdk_get_display:
+diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
+index 1faa4cf..8e7c988 100644
+--- a/gdk/win32/gdkdisplay-win32.c
++++ b/gdk/win32/gdkdisplay-win32.c
+@@ -236,7 +236,7 @@ struct _GdkWin32DisplayClass
+ G_DEFINE_TYPE (GdkWin32Display, gdk_win32_display, GDK_TYPE_DISPLAY)
+-static G_CONST_RETURN gchar *
++static const gchar *
+ gdk_win32_display_get_name (GdkDisplay *display)
+ {
+   HDESK hdesk = GetThreadDesktop (GetCurrentThreadId ());
+diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
+index 2911a3a..983ac72 100644
+--- a/gdk/x11/gdkdisplay-x11.c
++++ b/gdk/x11/gdkdisplay-x11.c
+@@ -1502,7 +1502,7 @@ gdk_internal_connection_watch (Display  *display,
+ }
+ #endif /* HAVE_X11R6 */
+-static G_CONST_RETURN gchar *
++static const gchar *
+ gdk_x11_display_get_name (GdkDisplay *display)
+ {
+   return (gchar *) DisplayString (GDK_X11_DISPLAY (display)->xdisplay);
+@@ -2185,7 +2185,7 @@ gdk_x11_display_supports_input_shapes (GdkDisplay *display)
+  *
+  * Since: 2.12
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ gdk_x11_display_get_startup_notification_id (GdkDisplay *display)
+ {
+   return GDK_X11_DISPLAY (display)->startup_notification_id;
+diff --git a/gdk/x11/gdkproperty-x11.c b/gdk/x11/gdkproperty-x11.c
+index 0cf753c..678b196 100644
+--- a/gdk/x11/gdkproperty-x11.c
++++ b/gdk/x11/gdkproperty-x11.c
+@@ -503,7 +503,7 @@ gdk_x11_get_xatom_by_name (const gchar *atom_name)
+  *
+  * Since: 2.2
+  **/
+-G_CONST_RETURN gchar *
++const gchar *
+ gdk_x11_get_xatom_name_for_display (GdkDisplay *display,
+                                   Atom        xatom)
+ {
+@@ -525,7 +525,7 @@ gdk_x11_get_xatom_name_for_display (GdkDisplay *display,
+  * Return value: name of the X atom; this string is owned by GTK+,
+  *   so it shouldn't be modifed or freed. 
+  **/
+-G_CONST_RETURN gchar *
++const gchar *
+ gdk_x11_get_xatom_name (Atom xatom)
+ {
+   return get_atom_name (gdk_x11_xatom_to_atom (xatom));
+diff --git a/gdk/x11/gdkx11display.h b/gdk/x11/gdkx11display.h
+index b544ac4..8781edb 100644
+--- a/gdk/x11/gdkx11display.h
++++ b/gdk/x11/gdkx11display.h
+@@ -60,7 +60,7 @@ Display *gdk_x11_display_get_xdisplay     (GdkDisplay  *display);
+ guint32       gdk_x11_display_get_user_time (GdkDisplay *display);
+-G_CONST_RETURN gchar *gdk_x11_display_get_startup_notification_id (GdkDisplay *display);
++const gchar * gdk_x11_display_get_startup_notification_id         (GdkDisplay *display);
+ void          gdk_x11_display_set_startup_notification_id         (GdkDisplay  *display,
+                                                                    const gchar *startup_id);
+diff --git a/gdk/x11/gdkx11property.h b/gdk/x11/gdkx11property.h
+index 64fb978..9227063 100644
+--- a/gdk/x11/gdkx11property.h
++++ b/gdk/x11/gdkx11property.h
+@@ -45,13 +45,13 @@ GdkAtom               gdk_x11_xatom_to_atom_for_display (GdkDisplay  *display,
+                                                          Atom         xatom);
+ Atom                  gdk_x11_get_xatom_by_name_for_display (GdkDisplay  *display,
+                                                              const gchar *atom_name);
+-G_CONST_RETURN gchar *gdk_x11_get_xatom_name_for_display (GdkDisplay  *display,
++const gchar *         gdk_x11_get_xatom_name_for_display (GdkDisplay  *display,
+                                                           Atom         xatom);
+ #ifndef GDK_MULTIHEAD_SAFE
+ Atom                  gdk_x11_atom_to_xatom     (GdkAtom      atom);
+ GdkAtom               gdk_x11_xatom_to_atom     (Atom         xatom);
+ Atom                  gdk_x11_get_xatom_by_name (const gchar *atom_name);
+-G_CONST_RETURN gchar *gdk_x11_get_xatom_name    (Atom         xatom);
++const gchar *         gdk_x11_get_xatom_name    (Atom         xatom);
+ #endif
+ G_END_DECLS
+-- 
+1.7.6
+
diff --git a/x11-libs/gtk+/gtk+-3.0.12-r1.ebuild b/x11-libs/gtk+/gtk+-3.0.12-r1.ebuild
new file mode 100644 (file)
index 0000000..4255eff
--- /dev/null
@@ -0,0 +1,194 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/gtk+-3.0.12-r1.ebuild,v 1.1 2011/09/26 12:21:02 pacho Exp $
+
+EAPI="4"
+
+inherit eutils flag-o-matic gnome.org gnome2-utils libtool virtualx
+
+DESCRIPTION="Gimp ToolKit +"
+HOMEPAGE="http://www.gtk.org/"
+SRC_URI="${SRC_URI} http://dev.gentoo.org/~pacho/gnome/${PN}-3.0.12-use-const2.patch.xz"
+
+LICENSE="LGPL-2"
+SLOT="3"
+# NOTE: This gtk+ has multi-gdk-backend support, see:
+#  * http://blogs.gnome.org/kris/2010/12/29/gdk-3-0-on-mac-os-x/
+#  * http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00099.html
+# I tried this and got it all compiling, but the end result is unusable as it
+# horribly mixes up the backends -- grobian
+IUSE="aqua cups debug doc examples +introspection test vim-syntax xinerama"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+# FIXME: introspection data is built against system installation of gtk+:3
+# NOTE: cairo[svg] dep is due to bug 291283 (not patched to avoid eautoreconf)
+# Use gtk+:2 for gtk-update-icon-cache and gtk-builder-convert
+# >=x11-libs/gtk+-2.24:2 is needed for bug 359555
+COMMON_DEPEND="!aqua? (
+               x11-libs/libXrender
+               x11-libs/libX11
+               x11-libs/libXi
+               x11-libs/libXt
+               x11-libs/libXext
+               >=x11-libs/libXrandr-1.3
+               x11-libs/libXcursor
+               x11-libs/libXfixes
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               >=x11-libs/cairo-1.10.0[X,glib,svg]
+               >=x11-libs/gdk-pixbuf-2.22.0:2[X,introspection?]
+       )
+       aqua? (
+               >=x11-libs/cairo-1.10.0[aqua,glib,svg]
+               >=x11-libs/gdk-pixbuf-2.22.0:2[introspection?]
+       )
+       xinerama? ( x11-libs/libXinerama )
+       >=dev-libs/glib-2.28.0
+       >=x11-libs/pango-1.24.0[introspection?]
+       >=dev-libs/atk-1.30[introspection?]
+       >=x11-libs/gtk+-2.24:2
+       media-libs/fontconfig
+       x11-misc/shared-mime-info
+       cups? ( net-print/cups )
+       introspection? ( >=dev-libs/gobject-introspection-0.10.1 )"
+DEPEND="${COMMON_DEPEND}
+       >=dev-util/pkgconfig-0.9
+       !aqua? (
+               x11-proto/xextproto
+               x11-proto/xproto
+               x11-proto/inputproto
+               x11-proto/damageproto
+       )
+       xinerama? ( x11-proto/xineramaproto )
+       >=dev-util/gtk-doc-am-1.11
+       doc? (
+               >=dev-util/gtk-doc-1.11
+               ~app-text/docbook-xml-dtd-4.1.2 )
+       test? (
+               media-fonts/font-misc-misc
+               media-fonts/font-cursor-misc )"
+RDEPEND="${COMMON_DEPEND}
+       !<gnome-base/gail-1000"
+PDEPEND="vim-syntax? ( app-vim/gtk-syntax )"
+
+strip_builddir() {
+       local rule=$1
+       shift
+       local directory=$1
+       shift
+       sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \
+               || die "Could not strip director ${directory} from build."
+}
+
+src_prepare() {
+       # -O3 and company cause random crashes in applications. Bug #133469
+       replace-flags -O3 -O2
+       strip-flags
+
+       # Use const instead G_CONST_RETURN, upstream bug #658854
+       epatch "${FILESDIR}/${PN}-3.0.12-use-const.patch"
+       epatch "${WORKDIR}/${PN}-3.0.12-use-const2.patch"
+
+       # Non-working test in gentoo's env
+       sed 's:\(g_test_add_func ("/ui-tests/keys-events.*\):/*\1*/:g' \
+               -i gtk/tests/testing.c || die "sed 1 failed"
+       sed '\%/recent-manager/add%,/recent_manager_purge/ d' \
+               -i gtk/tests/recentmanager.c || die "sed 2 failed"
+
+       if ! use test; then
+               # don't waste time building tests
+               strip_builddir SRC_SUBDIRS tests Makefile.am
+               strip_builddir SRC_SUBDIRS tests Makefile.in
+       fi
+
+       if ! use examples; then
+               # don't waste time building demos
+               strip_builddir SRC_SUBDIRS demos Makefile.am
+               strip_builddir SRC_SUBDIRS demos Makefile.in
+       fi
+
+       # http://mail.gnome.org/archives/commits-list/2011-March/msg04372.html
+       epatch "${FILESDIR}"/${PN}-3.0.8-darwin-quartz.patch
+
+       # fix building with gir #372953
+       epatch "${FILESDIR}"/${PN}-3.0.11-darwin-quartz-introspection.patch
+
+       # Solaris is strict, and needs c99
+       # http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00127.html
+       if [[ ${CHOST} == *-solaris* ]] ; then
+               sed -i -e '/_XOPEN_SOURCE 500/d' gtk/gtksearchenginesimple.c || die
+       fi
+}
+
+src_configure() {
+       # FIXME: PackageKit support
+       # png always on to display icons (foser)
+       local myconf="$(use_enable doc gtk-doc)
+               $(use_enable xinerama)
+               $(use_enable cups cups auto)
+               $(use_enable introspection)
+               --disable-packagekit
+               --disable-papi
+               --enable-gtk2-dependency"
+
+       # XXX: Maybe with multi-backend we should enable x11 all the time?
+       if use aqua; then
+               myconf="${myconf} --enable-quartz-backend --disable-xinput"
+       else
+               myconf="${myconf} --enable-x11-backend --enable-xinput"
+       fi
+
+       # Passing --disable-debug is not recommended for production use
+       use debug && myconf="${myconf} --enable-debug=yes"
+
+       # need libdir here to avoid a double slash in a path that libtool doesn't
+       # grok so well during install (// between $EPREFIX and usr ...)
+       econf --libdir="${EPREFIX}/usr/$(get_libdir)" ${myconf}
+}
+
+src_test() {
+       unset DBUS_SESSION_BUS_ADDRESS
+       # Exporting HOME fixes tests using XDG directories spec since all defaults
+       # are based on $HOME. It is also backward compatible with functions not
+       # yet ported to this spec.
+       XDG_DATA_HOME="${T}" HOME="${T}" Xemake check || die "tests failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       insinto /etc/gtk-3.0
+       doins "${FILESDIR}"/settings.ini
+
+       dodoc AUTHORS ChangeLog* HACKING NEWS* README*
+
+       # Remove unneeded *.la files
+       find "${D}" -name "*.la" -delete
+
+       # add -framework Carbon to the .pc files
+       use aqua && for i in gtk+-3.0.pc gtk+-quartz-3.0.pc gtk+-unix-print-3.0.pc; do
+               sed -i -e "s:Libs\: :Libs\: -framework Carbon :" "${ED}"usr/$(get_libdir)/pkgconfig/$i || die "sed failed"
+       done
+}
+
+pkg_preinst() {
+       gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+       gnome2_schemas_update
+
+       local GTK3_MODDIR="${EROOT}usr/$(get_libdir)/gtk-3.0/3.0.0"
+       gtk-query-immodules-3.0  > "${GTK3_MODDIR}/immodules.cache" \
+               || ewarn "Failed to run gtk-query-immodules-3.0"
+
+       if ! has_version "app-text/evince"; then
+               elog "Please install app-text/evince for print preview functionality."
+               elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
+               elog "add it to your settings.ini file."
+       fi
+}
+
+pkg_postrm() {
+       gnome2_schemas_update --uninstall
+}