summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/clutter
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-libs/clutter')
-rw-r--r--media-libs/clutter/Manifest3
-rw-r--r--media-libs/clutter/clutter-1.20.2.ebuild112
-rw-r--r--media-libs/clutter/clutter-1.22.2-r1.ebuild116
-rw-r--r--media-libs/clutter/clutter-1.22.4.ebuild109
-rw-r--r--media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual-2.patch32
-rw-r--r--media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual.patch109
-rw-r--r--media-libs/clutter/files/clutter-1.22.2-cogl-visual-xlib.patch130
-rw-r--r--media-libs/clutter/files/clutter-1.22.2-touchpad-detection.patch36
-rw-r--r--media-libs/clutter/metadata.xml9
9 files changed, 656 insertions, 0 deletions
diff --git a/media-libs/clutter/Manifest b/media-libs/clutter/Manifest
new file mode 100644
index 000000000000..977f81b5cb06
--- /dev/null
+++ b/media-libs/clutter/Manifest
@@ -0,0 +1,3 @@
+DIST clutter-1.20.2.tar.xz 5255576 SHA256 8fa5287e964e1811c339d95252b434a2bc0c60f1f42f1c854f29c71c7efeca94 SHA512 c9d8283a9d562608f5af42b1a3d1199d83ab18262e7fde6d221e1440ed5cadd3a82f9cf3f41a67330178773b05e63d07f8c24d87efb55df52e1bf2dc9e668788 WHIRLPOOL 9743048c63030dbc83b00bb9380bcc50bd6fcf71b0a4d77f44510063a7e3f687d720b4e07537d7e215b0ce4423e0af78959bceb483fe7749703c32d9ffae8a67
+DIST clutter-1.22.2.tar.xz 5304752 SHA256 8e69d21d9f7e8e89eafc072e2615c289903260c470af39bcb578b081139c11ac SHA512 002ea924f97fca89cec96a9e5850f0351cd44b960eede898fa59ef3c0c1c08f9798b34747a9590b2c59108d0ae7cbcd5c67e96a61c4e9bab1f9f6075c863e21f WHIRLPOOL b75886894b64e0b4c87a9df76b717fa420a939ebda7088a1d7a57c36408e0a2084ff5187b74feeb6093b2879e51827f4d8677e9cbef8a3ee15bd7ab39b7b72c8
+DIST clutter-1.22.4.tar.xz 5311124 SHA256 1d77ce16025f87667a1d00dc4fa617a1935156f63fd17635fdadf138866c9e1e SHA512 a3b023bff06f99443442df42295eca03e0a56acbaf6e07002afc6ab9548995a9fd7c2eba8fb7516df32573235005b53283e9c443aed782378c9acb2dea574bd9 WHIRLPOOL 86f2065b38148d533e5c5efa8c709d1d1bce364140c671b345055bd9cbfeba06d512d15e00691cb1aeee0eee48ef2380dcda859fa29707292310e026df6a78dd
diff --git a/media-libs/clutter/clutter-1.20.2.ebuild b/media-libs/clutter/clutter-1.20.2.ebuild
new file mode 100644
index 000000000000..1d86f8ea70f9
--- /dev/null
+++ b/media-libs/clutter/clutter-1.20.2.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2 virtualx
+
+HOMEPAGE="https://wiki.gnome.org/Projects/Clutter"
+DESCRIPTION="Clutter is a library for creating graphical user interfaces"
+
+LICENSE="LGPL-2.1+ FDL-1.1+"
+SLOT="1.0"
+IUSE="aqua debug doc egl gtk +introspection test wayland +X"
+REQUIRED_USE="
+ || ( aqua wayland X )
+ wayland? ( egl )
+"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+
+# NOTE: glx flavour uses libdrm + >=mesa-7.3
+# XXX: uprof needed for profiling
+# >=libX11-1.3.1 needed for X Generic Event support
+# do not depend on tslib, it does not build and is disable by default upstream
+# <dev-libs/libinput-0.8 due to Gnome bugzilla #742829
+RDEPEND="
+ >=dev-libs/glib-2.37.3:2
+ >=dev-libs/atk-2.5.3[introspection?]
+ >=dev-libs/json-glib-0.12[introspection?]
+ >=media-libs/cogl-1.17.5:1.0=[introspection?,pango,wayland?]
+ >=x11-libs/cairo-1.12:=[aqua?,glib]
+ >=x11-libs/pango-1.30[introspection?]
+
+ virtual/opengl
+ x11-libs/libdrm:=
+
+ egl? (
+ >=dev-libs/libinput-0.4
+ <dev-libs/libinput-0.8
+ media-libs/cogl[gles2,kms]
+ >=virtual/libgudev-136
+ x11-libs/libxkbcommon
+ )
+ gtk? ( >=x11-libs/gtk+-3.3.18:3[aqua?] )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.6 )
+ X? (
+ media-libs/fontconfig
+ >=x11-libs/libX11-1.3.1
+ x11-libs/libXext
+ x11-libs/libXdamage
+ x11-proto/inputproto
+ >=x11-libs/libXi-1.3
+ >=x11-libs/libXcomposite-0.4 )
+ wayland? (
+ dev-libs/wayland
+ x11-libs/gdk-pixbuf:2 )
+"
+DEPEND="${RDEPEND}
+ >=dev-util/gtk-doc-am-1.20
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ doc? (
+ >=dev-util/gtk-doc-1.20
+ >=app-text/docbook-sgml-utils-0.6.14[jadetex]
+ dev-libs/libxslt )
+ test? ( x11-libs/gdk-pixbuf )"
+
+# Tests fail with both swrast and llvmpipe
+# They pass under r600g or i965, so the bug is in mesa
+#RESTRICT="test"
+
+src_prepare() {
+ # We only need conformance tests, the rest are useless for us
+ sed -e 's/^\(SUBDIRS =\).*/\1 accessibility conform/g' \
+ -i tests/Makefile.am || die "am tests sed failed"
+ sed -e 's/^\(SUBDIRS =\)[^\]*/\1 accessibility conform/g' \
+ -i tests/Makefile.in || die "in tests sed failed"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # XXX: Conformance test suite (and clutter itself) does not work under Xvfb
+ # (GLX error blabla)
+ # XXX: Profiling, coverage disabled for now
+ # XXX: What about cex100/win32 backends?
+ gnome2_src_configure \
+ --disable-profile \
+ --disable-maintainer-flags \
+ --disable-gcov \
+ --disable-cex100-backend \
+ --disable-win32-backend \
+ --disable-tslib-input \
+ $(use_enable aqua quartz-backend) \
+ $(usex debug --enable-debug=yes --enable-debug=minimum) \
+ $(use_enable doc docs) \
+ $(use_enable egl egl-backend) \
+ $(use_enable egl evdev-input) \
+ $(use_enable gtk gdk-backend) \
+ $(use_enable introspection) \
+ $(use_enable test gdk-pixbuf) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable wayland wayland-compositor) \
+ $(use_enable X xinput) \
+ $(use_enable X x11-backend)
+}
+
+src_test() {
+ Xemake check -C tests/conform
+}
diff --git a/media-libs/clutter/clutter-1.22.2-r1.ebuild b/media-libs/clutter/clutter-1.22.2-r1.ebuild
new file mode 100644
index 000000000000..4f72e0803331
--- /dev/null
+++ b/media-libs/clutter/clutter-1.22.2-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools eutils gnome2 virtualx
+
+HOMEPAGE="https://wiki.gnome.org/Projects/Clutter"
+DESCRIPTION="Clutter is a library for creating graphical user interfaces"
+
+LICENSE="LGPL-2.1+ FDL-1.1+"
+SLOT="1.0"
+IUSE="aqua debug doc egl gtk +introspection test wayland +X"
+REQUIRED_USE="
+ || ( aqua wayland X )
+ wayland? ( egl )
+"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+
+# NOTE: glx flavour uses libdrm + >=mesa-7.3
+# >=libX11-1.3.1 needed for X Generic Event support
+# do not depend on tslib, it does not build and is disable by default upstream
+RDEPEND="
+ >=dev-libs/glib-2.39.0:2
+ >=dev-libs/atk-2.5.3[introspection?]
+ >=dev-libs/json-glib-0.12[introspection?]
+ >=media-libs/cogl-1.20.0:1.0=[introspection?,pango,wayland?]
+ >=x11-libs/cairo-1.14:=[aqua?,glib]
+ >=x11-libs/pango-1.30[introspection?]
+
+ virtual/opengl
+ x11-libs/libdrm:=
+
+ egl? (
+ >=dev-libs/libinput-0.8
+ media-libs/cogl[gles2,kms]
+ >=virtual/libgudev-136
+ x11-libs/libxkbcommon
+ )
+ gtk? ( >=x11-libs/gtk+-3.3.18:3[aqua?] )
+ introspection? ( >=dev-libs/gobject-introspection-1.39 )
+ X? (
+ media-libs/fontconfig
+ >=x11-libs/libX11-1.3.1
+ x11-libs/libXext
+ x11-libs/libXdamage
+ x11-proto/inputproto
+ >=x11-libs/libXi-1.3
+ >=x11-libs/libXcomposite-0.4 )
+ wayland? (
+ dev-libs/wayland
+ x11-libs/gdk-pixbuf:2 )
+"
+DEPEND="${RDEPEND}
+ >=dev-util/gtk-doc-am-1.20
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ doc? (
+ >=dev-util/gtk-doc-1.20
+ >=app-text/docbook-sgml-utils-0.6.14[jadetex]
+ dev-libs/libxslt )
+ test? ( x11-libs/gdk-pixbuf )"
+
+# Tests fail with both swrast and llvmpipe
+# They pass under r600g or i965, so the bug is in mesa
+#RESTRICT="test"
+
+src_prepare() {
+ # From upstream git, 1.22 branch
+ epatch "${FILESDIR}"/${P}-touchpad-detection.patch
+ epatch "${FILESDIR}"/${P}-cogl-visual-xlib.patch
+ epatch "${FILESDIR}"/${P}-clutter_gdk_get_visual.patch
+ epatch "${FILESDIR}"/${P}-clutter_gdk_get_visual-2.patch
+
+ # We only need conformance tests, the rest are useless for us
+ sed -e 's/^\(SUBDIRS =\).*/\1 accessibility conform/g' \
+ -i tests/Makefile.am || die "am tests sed failed"
+ sed -e 's/^\(SUBDIRS =\)[^\]*/\1 accessibility conform/g' \
+ -i tests/Makefile.in || die "in tests sed failed"
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # XXX: Conformance test suite (and clutter itself) does not work under Xvfb
+ # (GLX error blabla)
+ # XXX: coverage disabled for now
+ # XXX: What about cex100/win32 backends?
+ gnome2_src_configure \
+ --disable-maintainer-flags \
+ --disable-mir-backend \
+ --disable-gcov \
+ --disable-cex100-backend \
+ --disable-win32-backend \
+ --disable-tslib-input \
+ $(use_enable aqua quartz-backend) \
+ $(usex debug --enable-debug=yes --enable-debug=minimum) \
+ $(use_enable doc docs) \
+ $(use_enable egl egl-backend) \
+ $(use_enable egl evdev-input) \
+ $(use_enable gtk gdk-backend) \
+ $(use_enable introspection) \
+ $(use_enable test gdk-pixbuf) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable wayland wayland-compositor) \
+ $(use_enable X xinput) \
+ $(use_enable X x11-backend)
+}
+
+src_test() {
+ Xemake check -C tests/conform
+}
diff --git a/media-libs/clutter/clutter-1.22.4.ebuild b/media-libs/clutter/clutter-1.22.4.ebuild
new file mode 100644
index 000000000000..1af52388cb3c
--- /dev/null
+++ b/media-libs/clutter/clutter-1.22.4.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2 virtualx
+
+HOMEPAGE="https://wiki.gnome.org/Projects/Clutter"
+DESCRIPTION="Clutter is a library for creating graphical user interfaces"
+
+LICENSE="LGPL-2.1+ FDL-1.1+"
+SLOT="1.0"
+IUSE="aqua debug doc egl gtk +introspection test wayland +X"
+REQUIRED_USE="
+ || ( aqua wayland X )
+ wayland? ( egl )
+"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+
+# NOTE: glx flavour uses libdrm + >=mesa-7.3
+# >=libX11-1.3.1 needed for X Generic Event support
+# do not depend on tslib, it does not build and is disable by default upstream
+RDEPEND="
+ >=dev-libs/glib-2.39.0:2
+ >=dev-libs/atk-2.5.3[introspection?]
+ >=dev-libs/json-glib-0.12[introspection?]
+ >=media-libs/cogl-1.20.0:1.0=[introspection?,pango,wayland?]
+ >=x11-libs/cairo-1.14:=[aqua?,glib]
+ >=x11-libs/pango-1.30[introspection?]
+
+ virtual/opengl
+ x11-libs/libdrm:=
+
+ egl? (
+ >=dev-libs/libinput-0.8
+ media-libs/cogl[gles2,kms]
+ >=virtual/libgudev-136
+ x11-libs/libxkbcommon
+ )
+ gtk? ( >=x11-libs/gtk+-3.3.18:3[aqua?] )
+ introspection? ( >=dev-libs/gobject-introspection-1.39:= )
+ X? (
+ media-libs/fontconfig
+ >=x11-libs/libX11-1.3.1
+ x11-libs/libXext
+ x11-libs/libXdamage
+ x11-proto/inputproto
+ >=x11-libs/libXi-1.3
+ >=x11-libs/libXcomposite-0.4 )
+ wayland? (
+ dev-libs/wayland
+ x11-libs/gdk-pixbuf:2 )
+"
+DEPEND="${RDEPEND}
+ >=dev-util/gtk-doc-am-1.20
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ doc? (
+ >=dev-util/gtk-doc-1.20
+ >=app-text/docbook-sgml-utils-0.6.14[jadetex]
+ dev-libs/libxslt )
+ test? ( x11-libs/gdk-pixbuf )
+"
+# Tests fail with both swrast and llvmpipe
+# They pass under r600g or i965, so the bug is in mesa
+#RESTRICT="test"
+
+src_prepare() {
+ # We only need conformance tests, the rest are useless for us
+ sed -e 's/^\(SUBDIRS =\).*/\1 accessibility conform/g' \
+ -i tests/Makefile.am || die "am tests sed failed"
+ sed -e 's/^\(SUBDIRS =\)[^\]*/\1 accessibility conform/g' \
+ -i tests/Makefile.in || die "in tests sed failed"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # XXX: Conformance test suite (and clutter itself) does not work under Xvfb
+ # (GLX error blabla)
+ # XXX: coverage disabled for now
+ # XXX: What about cex100/win32 backends?
+ gnome2_src_configure \
+ --disable-maintainer-flags \
+ --disable-mir-backend \
+ --disable-gcov \
+ --disable-cex100-backend \
+ --disable-win32-backend \
+ --disable-tslib-input \
+ $(use_enable aqua quartz-backend) \
+ $(usex debug --enable-debug=yes --enable-debug=minimum) \
+ $(use_enable doc docs) \
+ $(use_enable egl egl-backend) \
+ $(use_enable egl evdev-input) \
+ $(use_enable gtk gdk-backend) \
+ $(use_enable introspection) \
+ $(use_enable test gdk-pixbuf) \
+ $(use_enable wayland wayland-backend) \
+ $(use_enable wayland wayland-compositor) \
+ $(use_enable X xinput) \
+ $(use_enable X x11-backend)
+}
+
+src_test() {
+ Xemake check -C tests/conform
+}
diff --git a/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual-2.patch b/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual-2.patch
new file mode 100644
index 000000000000..c857d9dc7c87
--- /dev/null
+++ b/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual-2.patch
@@ -0,0 +1,32 @@
+From 19064c4f444ed3fd596580cb98876619133c7f22 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Wed, 10 Jun 2015 19:13:13 +0100
+Subject: [PATCH 3/3] build: Reset interface_age
+
+We don't usually add symbols inside a stable branch, but given that the
+newly added clutter_gdk_get_visual() function is necessary to make
+Clutter work when embedded inside GTK running on nVidia binary drivers,
+I decided to break the rule. This requires resetting the interface age,
+so that the soname version changes.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=747489
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ed67ea1..5b590ed 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,7 +31,7 @@ m4_define([clutter_micro_version], [3])
+ # ...
+ #
+ # • for development releases: keep clutter_interface_age to 0
+-m4_define([clutter_interface_age], [2])
++m4_define([clutter_interface_age], [0])
+
+ m4_define([clutter_binary_age], [m4_eval(100 * clutter_minor_version + clutter_micro_version)])
+
+--
+2.4.3
+
diff --git a/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual.patch b/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual.patch
new file mode 100644
index 000000000000..d157ac1ee690
--- /dev/null
+++ b/media-libs/clutter/files/clutter-1.22.2-clutter_gdk_get_visual.patch
@@ -0,0 +1,109 @@
+From ab63b30a9b1812b0e53bcddcd55f00fd507347dc Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Wed, 10 Jun 2015 12:02:13 +0100
+Subject: [PATCH 2/3] gdk: Add function to retrieve the GdkVisual
+
+Straight from Cogl.
+
+This allows us to propagate the GdkVisual Cogl and Clutter use to
+embedding toolkits, like GTK+.
+
+The function is annotated as being added to the 1.22 development
+cycle because it will be backported to the stable branch, so that
+downstream developers can package up a version of Clutter that does
+not crash on nVidia.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=747489
+(cherry picked from commit 2d5b5aa82aacab7cc523e5877afbb864592b7651)
+Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+---
+ clutter/gdk/clutter-backend-gdk.c | 48 ++++++++++++++++++++++++++++++
+ clutter/gdk/clutter-gdk.h | 3 ++
+ doc/reference/clutter/clutter-sections.txt | 1 +
+ 3 files changed, 52 insertions(+)
+
+diff --git a/clutter/gdk/clutter-backend-gdk.c b/clutter/gdk/clutter-backend-gdk.c
+index 47bd671..01ba8cb 100644
+--- a/clutter/gdk/clutter-backend-gdk.c
++++ b/clutter/gdk/clutter-backend-gdk.c
+@@ -498,3 +498,51 @@ clutter_gdk_disable_event_retrieval (void)
+
+ disable_event_retrieval = TRUE;
+ }
++
++/**
++ * clutter_gdk_get_visual:
++ *
++ * Retrieves the #GdkVisual used by Clutter.
++ *
++ * This function should be used when embedding Clutter inside GDK-based
++ * foreign toolkits, to ensure that the visual applied to the #GdkWindow
++ * used to render the #ClutterStage is the correct one.
++ *
++ * Returns: (transfer none): a #GdkVisual instance
++ *
++ * Since: 1.22
++ */
++GdkVisual *
++clutter_gdk_get_visual (void)
++{
++ ClutterBackend *backend = clutter_get_default_backend ();
++ GdkScreen *screen;
++
++ if (backend == NULL)
++ {
++ g_critical ("The Clutter backend has not been initialised");
++ return NULL;
++ }
++
++ if (!CLUTTER_IS_BACKEND_GDK (backend))
++ {
++ g_critical ("The Clutter backend is not a GDK backend");
++ return NULL;
++ }
++
++ screen = CLUTTER_BACKEND_GDK (backend)->screen;
++ g_assert (screen != NULL);
++
++#if defined(GDK_WINDOWING_X11) && defined(COGL_HAS_XLIB_SUPPORT)
++ {
++ XVisualInfo *xvisinfo = cogl_clutter_winsys_xlib_get_visual_info ();
++ if (xvisinfo != NULL)
++ return gdk_x11_screen_lookup_visual (screen, xvisinfo->visualid);
++ }
++#endif
++
++ if (gdk_screen_get_rgba_visual (screen) != NULL)
++ return gdk_screen_get_rgba_visual (screen);
++
++ return gdk_screen_get_system_visual (screen);
++}
+diff --git a/clutter/gdk/clutter-gdk.h b/clutter/gdk/clutter-gdk.h
+index a009378..c5b979b 100644
+--- a/clutter/gdk/clutter-gdk.h
++++ b/clutter/gdk/clutter-gdk.h
+@@ -61,6 +61,9 @@ ClutterStage * clutter_gdk_get_stage_from_window (GdkWindow *window);
+ CLUTTER_AVAILABLE_IN_1_10
+ void clutter_gdk_disable_event_retrieval (void);
+
++CLUTTER_AVAILABLE_IN_1_22
++GdkVisual * clutter_gdk_get_visual (void);
++
+ G_END_DECLS
+
+ #endif /* __CLUTTER_GDK_H__ */
+diff --git a/doc/reference/clutter/clutter-sections.txt b/doc/reference/clutter/clutter-sections.txt
+index 327f185..d521dc1 100644
+--- a/doc/reference/clutter/clutter-sections.txt
++++ b/doc/reference/clutter/clutter-sections.txt
+@@ -1516,6 +1516,7 @@ clutter_gdk_handle_event
+ clutter_gdk_set_display
+ clutter_gdk_get_default_display
+ clutter_gdk_set_stage_foreign
++clutter_gdk_get_visual
+ </SECTION>
+
+ <SECTION>
+--
+2.4.3
+
diff --git a/media-libs/clutter/files/clutter-1.22.2-cogl-visual-xlib.patch b/media-libs/clutter/files/clutter-1.22.2-cogl-visual-xlib.patch
new file mode 100644
index 000000000000..52cf929a006b
--- /dev/null
+++ b/media-libs/clutter/files/clutter-1.22.2-cogl-visual-xlib.patch
@@ -0,0 +1,130 @@
+From 44fc1c87489bb7bbe1d28eb0f551794db333e1fb Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Wed, 10 Jun 2015 11:55:50 +0100
+Subject: [PATCH 1/3] gdk: Use the Cogl visual on Xlib winsys
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+GDK 3.16 started selecting different visuals, to best comply with the
+requirements for OpenGL, and this has broken Clutter on GLX drivers that
+are fairly picky in how they select visuals and GLXFBConfig.
+
+GDK selects GLXFBConfig that do not include depth or stencil buffers;
+Cogl, on the other hand, needs both depth and stencil buffers, and keeps
+selecting the first available visual, assuming that the GLX driver will
+give us the best compliant one, as per specification. Sadly, some
+drivers will return incompatible configurations, and then bomb out when
+you try to embed Clutter inside GTK+, because of mismatched visuals.
+
+Cogl has an old, deprecated, Clutter-only API that allows us to retrieve
+the XVisualInfo mapping to the GLXFBConfig it uses; this means we should
+look up the GdkVisual for it when creating our own GdkWindows, instead
+of relying on the RGBA and system GdkVisuals exposed by GDK — at least
+on X11.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=747489
+(cherry picked from commit c91621e8c28bb190eaa9d59e08b180589a255cf3)
+Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
+---
+ clutter/gdk/clutter-stage-gdk.c | 50 ++++++++++++++++++++++++++++++-----------
+ 1 file changed, 37 insertions(+), 13 deletions(-)
+
+diff --git a/clutter/gdk/clutter-stage-gdk.c b/clutter/gdk/clutter-stage-gdk.c
+index e855a98..82f7679 100644
+--- a/clutter/gdk/clutter-stage-gdk.c
++++ b/clutter/gdk/clutter-stage-gdk.c
+@@ -29,6 +29,10 @@
+
+ #include <cogl/cogl.h>
+
++#ifdef COGL_HAS_XLIB_SUPPORT
++#include <cogl/cogl-xlib.h>
++#endif
++
+ #define GDK_DISABLE_DEPRECATION_WARNINGS
+
+ #include <gdk/gdk.h>
+@@ -183,7 +187,7 @@ clutter_stage_gdk_realize (ClutterStageWindow *stage_window)
+ GdkWindowAttr attributes;
+ gboolean cursor_visible;
+ gboolean use_alpha;
+- gfloat width, height;
++ gfloat width, height;
+
+ if (backend->cogl_context == NULL)
+ {
+@@ -191,12 +195,7 @@ clutter_stage_gdk_realize (ClutterStageWindow *stage_window)
+ return FALSE;
+ }
+
+- if (stage_gdk->foreign_window)
+- {
+- width = gdk_window_get_width (stage_gdk->window);
+- height = gdk_window_get_height (stage_gdk->window);
+- }
+- else
++ if (!stage_gdk->foreign_window)
+ {
+ if (stage_gdk->window != NULL)
+ {
+@@ -239,13 +238,34 @@ clutter_stage_gdk_realize (ClutterStageWindow *stage_window)
+ attributes.cursor = stage_gdk->blank_cursor;
+ }
+
+- attributes.visual = NULL;
++ /* If the ClutterStage:use-alpha is set, but GDK does not have an
++ * RGBA visual, then we unset the property on the Stage
++ */
+ if (use_alpha)
+ {
+- attributes.visual = gdk_screen_get_rgba_visual (backend_gdk->screen);
++ if (gdk_screen_get_rgba_visual (backend_gdk->screen) == NULL)
++ {
++ clutter_stage_set_use_alpha (stage_cogl->wrapper, FALSE);
++ use_alpha = FALSE;
++ }
++ }
+
+- if (attributes.visual == NULL)
+- clutter_stage_set_use_alpha (stage_cogl->wrapper, FALSE);
++#if defined(GDK_WINDOWING_X11) && defined(COGL_HAS_XLIB_SUPPORT)
++ if (GDK_IS_X11_DISPLAY (backend_gdk->display))
++ {
++ XVisualInfo *xvisinfo = cogl_clutter_winsys_xlib_get_visual_info ();
++ if (xvisinfo != NULL)
++ {
++ attributes.visual = gdk_x11_screen_lookup_visual (backend_gdk->screen,
++ xvisinfo->visualid);
++ }
++ }
++ else
++#endif
++ {
++ attributes.visual = use_alpha
++ ? gdk_screen_get_rgba_visual (backend_gdk->screen)
++ : gdk_screen_get_system_visual (backend_gdk->screen);
+ }
+
+ if (attributes.visual == NULL)
+@@ -263,11 +283,15 @@ clutter_stage_gdk_realize (ClutterStageWindow *stage_window)
+
+ clutter_stage_gdk_set_gdk_geometry (stage_gdk);
+ }
++ else
++ {
++ width = gdk_window_get_width (stage_gdk->window);
++ height = gdk_window_get_height (stage_gdk->window);
++ }
+
+ gdk_window_ensure_native (stage_gdk->window);
+
+- g_object_set_data (G_OBJECT (stage_gdk->window),
+- "clutter-stage-window", stage_gdk);
++ g_object_set_data (G_OBJECT (stage_gdk->window), "clutter-stage-window", stage_gdk);
+
+ stage_cogl->onscreen = cogl_onscreen_new (backend->cogl_context,
+ width, height);
+--
+2.4.3
+
diff --git a/media-libs/clutter/files/clutter-1.22.2-touchpad-detection.patch b/media-libs/clutter/files/clutter-1.22.2-touchpad-detection.patch
new file mode 100644
index 000000000000..ad65105b13c8
--- /dev/null
+++ b/media-libs/clutter/files/clutter-1.22.2-touchpad-detection.patch
@@ -0,0 +1,36 @@
+From a4aad807d5cc6842043e12897cfac3a516825c0f Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Sun, 17 May 2015 00:50:56 +0200
+Subject: [PATCH] x11: Fix touchpad detection
+
+Commit 79849ef1d5fff9acd310cd68d59df0c7cf2cb28f had a typo in the
+device property format check. This property is formated in 8-bit
+items, not 32-bit.
+
+This went unnoticed till now because some touchpads were still being
+detected as such due to a second check below:
+
+ else if (strstr (name, "touchpad") != NULL)
+ source = CLUTTER_TOUCHPAD_DEVICE;
+
+https://bugzilla.gnome.org/show_bug.cgi?id=749482
+---
+ clutter/x11/clutter-device-manager-xi2.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clutter/x11/clutter-device-manager-xi2.c b/clutter/x11/clutter-device-manager-xi2.c
+index 17c491e..1b101c4 100644
+--- a/clutter/x11/clutter-device-manager-xi2.c
++++ b/clutter/x11/clutter-device-manager-xi2.c
+@@ -242,7 +242,7 @@ is_touchpad_device (ClutterBackendX11 *backend_x11,
+ /* We don't care about the data */
+ XFree (data);
+
+- if (rc != Success || type != XA_INTEGER || format != 32 || nitems != 1)
++ if (rc != Success || type != XA_INTEGER || format != 8 || nitems != 1)
+ return FALSE;
+
+ return TRUE;
+--
+2.4.3
+
diff --git a/media-libs/clutter/metadata.xml b/media-libs/clutter/metadata.xml
new file mode 100644
index 000000000000..e82af824d4b8
--- /dev/null
+++ b/media-libs/clutter/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+<use>
+ <flag name="egl">Enable EGL backend.</flag>
+ <flag name="gtk">Use gdk-pixbuf from <pkg>x11-libs/gtk+</pkg> as image rendering backend</flag>
+</use>
+</pkgmetadata>