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