r33960 - in /desktop/experimental/mutter/debian: changelog control control.in patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch patches/03_fix_compilation_with_new_cogl.patch patches/series rules
sjoerd at users.alioth.debian.org
sjoerd at users.alioth.debian.org
Sun Apr 1 14:19:16 UTC 2012
Author: sjoerd
Date: Sun Apr 1 14:19:13 2012
New Revision: 33960
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=33960
Log:
* d/p/02_Fix-cogl-crash-from-updating-non-existent-texture.patch:
+ Added. In 1.8 cogl would prevent attempts to update textures with
an invalid handle from crashing buggy programs. Cogl 1.10 no longer does
so. This patch prevents mutter from updating invalid textures
* d/p/03_fix_compilation_with_new_cogl.patch
+ Added. Adapt to changes made in the experimental patch of the cogl API
Added:
desktop/experimental/mutter/debian/patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch
desktop/experimental/mutter/debian/patches/03_fix_compilation_with_new_cogl.patch
Modified:
desktop/experimental/mutter/debian/changelog
desktop/experimental/mutter/debian/control
desktop/experimental/mutter/debian/control.in
desktop/experimental/mutter/debian/patches/series
desktop/experimental/mutter/debian/rules
Modified: desktop/experimental/mutter/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/changelog?rev=33960&op=diff
==============================================================================
--- desktop/experimental/mutter/debian/changelog [utf-8] (original)
+++ desktop/experimental/mutter/debian/changelog [utf-8] Sun Apr 1 14:19:13 2012
@@ -1,3 +1,14 @@
+mutter (3.2.2-2) UNRELEASED; urgency=low
+
+ * d/p/02_Fix-cogl-crash-from-updating-non-existent-texture.patch:
+ + Added. In 1.8 cogl would prevent attempts to update textures with
+ an invalid handle from crashing buggy programs. Cogl 1.10 no longer does
+ so. This patch prevents mutter from updating invalid textures
+ * d/p/03_fix_compilation_with_new_cogl.patch
+ + Added. Adapt to changes made in the experimental patch of the cogl API
+
+ -- Sjoerd Simons <sjoerd at debian.org> Sun, 01 Apr 2012 15:02:29 +0200
+
mutter (3.2.2-1) unstable; urgency=low
[ Michael Biebl ]
Modified: desktop/experimental/mutter/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/control?rev=33960&op=diff
==============================================================================
--- desktop/experimental/mutter/debian/control [utf-8] (original)
+++ desktop/experimental/mutter/debian/control [utf-8] Sun Apr 1 14:19:13 2012
@@ -17,7 +17,7 @@
gobject-introspection (>= 0.9.12-5~),
libgirepository1.0-dev (>= 0.9.12),
libjson-glib-dev (>= 0.13.2-1~),
- libclutter-1.0-dev (>= 1.7.12),
+ libclutter-1.0-dev (>= 1.10.0),
libpango1.0-dev (>= 1.2.0),
libcairo2-dev (>= 1.2.0),
libgconf2-dev (>= 2.6.1-2),
Modified: desktop/experimental/mutter/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/control.in?rev=33960&op=diff
==============================================================================
--- desktop/experimental/mutter/debian/control.in [utf-8] (original)
+++ desktop/experimental/mutter/debian/control.in [utf-8] Sun Apr 1 14:19:13 2012
@@ -12,7 +12,7 @@
gobject-introspection (>= 0.9.12-5~),
libgirepository1.0-dev (>= 0.9.12),
libjson-glib-dev (>= 0.13.2-1~),
- libclutter-1.0-dev (>= 1.7.12),
+ libclutter-1.0-dev (>= 1.10.0),
libpango1.0-dev (>= 1.2.0),
libcairo2-dev (>= 1.2.0),
libgconf2-dev (>= 2.6.1-2),
Added: desktop/experimental/mutter/debian/patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch?rev=33960&op=file
==============================================================================
--- desktop/experimental/mutter/debian/patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch (added)
+++ desktop/experimental/mutter/debian/patches/02_Fix-cogl-crash-from-updating-non-existent-texture.patch [utf-8] Sun Apr 1 14:19:13 2012
@@ -1,0 +1,61 @@
+From 162213be0d1ce5d0cf1d6c40f7a65a8ab5861b57 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre at mecheye.net>
+Date: Wed, 9 Nov 2011 15:12:06 -0500
+Subject: [PATCH] Fix cogl crash from updating non-existent texture
+
+The code here was always incorrect - we were processing damage events for
+windows without having a texture. Before, this didn't matter, as
+cogl_texture_get_width silently returned 0 for invalid handles. Cogl commit
+4c3dadd35e4657a151025118814534d05091d4db changed this.
+
+The fix here involves two strategies. First, we try to guard MetaTextureTower
+from invalid textures. Second, we try not to go down the path that eventually
+calls meta_shaped_texture_update_area by not handling damage events if we
+don't have a texture for the window.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=660941
+---
+ src/compositor/meta-texture-tower.c | 3 +++
+ src/compositor/meta-window-actor.c | 5 +++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/src/compositor/meta-texture-tower.c b/src/compositor/meta-texture-tower.c
+index 8dbe62e..0025472 100644
+--- a/src/compositor/meta-texture-tower.c
++++ b/src/compositor/meta-texture-tower.c
+@@ -198,6 +198,9 @@ meta_texture_tower_update_area (MetaTextureTower *tower,
+
+ g_return_if_fail (tower != NULL);
+
++ if (tower->textures[0] == COGL_INVALID_HANDLE)
++ return;
++
+ texture_width = cogl_texture_get_width (tower->textures[0]);
+ texture_height = cogl_texture_get_height (tower->textures[0]);
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index ef47bc8..b69049f 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -958,6 +958,9 @@ meta_window_actor_damage_all (MetaWindowActor *self)
+ "pixmap-height", &pixmap_height,
+ NULL);
+
++ if (!priv->mapped || priv->needs_pixmap)
++ return;
++
+ clutter_x11_texture_pixmap_update_area (texture_x11,
+ 0,
+ 0,
+@@ -2029,6 +2032,8 @@ meta_window_actor_process_damage (MetaWindowActor *self,
+ return;
+ }
+
++ if (!priv->mapped || priv->needs_pixmap)
++ return;
+
+ clutter_x11_texture_pixmap_update_area (texture_x11,
+ event->area.x,
+--
+1.7.9.5
+
Added: desktop/experimental/mutter/debian/patches/03_fix_compilation_with_new_cogl.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/patches/03_fix_compilation_with_new_cogl.patch?rev=33960&op=file
==============================================================================
--- desktop/experimental/mutter/debian/patches/03_fix_compilation_with_new_cogl.patch (added)
+++ desktop/experimental/mutter/debian/patches/03_fix_compilation_with_new_cogl.patch [utf-8] Sun Apr 1 14:19:13 2012
@@ -1,0 +1,57 @@
+From d249cfd040c6df402730b12b990666cfee52a2d2 Mon Sep 17 00:00:00 2001
+From: Robert Bragg <robert at linux.intel.com>
+Date: Tue, 21 Feb 2012 16:31:53 +0000
+Subject: [PATCH] Pass CoglContext to cogl_texture_pixmap_x11_new()
+
+The experimental Cogl api cogl_texture_pixmap_new() was recently changed
+so it now expects an explicit CoglContext argument and it can also
+return exceptions now via a GError. This patch updates mutters use of
+the api accordingly.
+---
+ src/compositor/meta-background-actor.c | 13 ++++++++++++-
+ src/compositor/meta-shaped-texture.c | 10 ++++++++--
+ 2 files changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/src/compositor/meta-background-actor.c b/src/compositor/meta-background-actor.c
+index 349f9b9..d70ae1b 100644
+--- a/src/compositor/meta-background-actor.c
++++ b/src/compositor/meta-background-actor.c
+@@ -28,6 +28,9 @@
+ #define COGL_ENABLE_EXPERIMENTAL_API
+ #include <cogl/cogl-texture-pixmap-x11.h>
+
++#define CLUTTER_ENABLE_EXPERIMENTAL_API
++#include <clutter/clutter.h>
++
+ #include <X11/Xatom.h>
+
+ #include "cogl-utils.h"
+@@ -539,9 +542,11 @@ meta_background_actor_update (MetaScreen *screen)
+ if (root_pixmap_id != None)
+ {
+ CoglHandle texture;
++ CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
++ GError *error = NULL;
+
+ meta_error_trap_push (display);
+- texture = cogl_texture_pixmap_x11_new (root_pixmap_id, FALSE);
++ texture = cogl_texture_pixmap_x11_new (ctx, root_pixmap_id, FALSE, &error);
+ meta_error_trap_pop (display);
+
+ if (texture != COGL_INVALID_HANDLE)
+@@ -552,6 +557,12 @@ meta_background_actor_update (MetaScreen *screen)
+ background->have_pixmap = True;
+ return;
+ }
++ else
++ {
++ g_warning ("Failed to create background texture from pixmap: %s",
++ error->message);
++ g_error_free (error);
++ }
+ }
+
+ background->have_pixmap = False;
+--
+1.7.9.5
+
Modified: desktop/experimental/mutter/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/patches/series?rev=33960&op=diff
==============================================================================
--- desktop/experimental/mutter/debian/patches/series [utf-8] (original)
+++ desktop/experimental/mutter/debian/patches/series [utf-8] Sun Apr 1 14:19:13 2012
@@ -1,1 +1,3 @@
01_Wcast-align.patch
+02_Fix-cogl-crash-from-updating-non-existent-texture.patch
+03_fix_compilation_with_new_cogl.patch
Modified: desktop/experimental/mutter/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/mutter/debian/rules?rev=33960&op=diff
==============================================================================
--- desktop/experimental/mutter/debian/rules [utf-8] (original)
+++ desktop/experimental/mutter/debian/rules [utf-8] Sun Apr 1 14:19:13 2012
@@ -8,7 +8,8 @@
include /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk
-include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
-DEB_CONFIGURE_EXTRA_FLAGS += --enable-startup-notification=yes
+DEB_CONFIGURE_EXTRA_FLAGS += --enable-startup-notification=yes \
+ --enable-compile-warnings=no
DEB_DH_MAKESHLIBS_ARGS_libmutter0 += -V'libmutter0 (>= $(DEB_GNOME_VERSION)), libmutter0 (<< $(DEB_GNOME_NEXTVERSION))' -- -c4
DEB_INSTALL_DOCS_mutter += doc/theme-format.txt
DEB_DH_GIREPOSITORY_ARGS_ALL := /usr/lib/mutter
More information about the pkg-gnome-commits
mailing list