[arch-commits] Commit in gnome-shell/repos (14 files)

Jan de Groot jgc at archlinux.org
Mon Apr 11 14:25:30 UTC 2016


    Date: Monday, April 11, 2016 @ 16:25:29
  Author: jgc
Revision: 264640

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  gnome-shell/repos/testing-i686/
  gnome-shell/repos/testing-i686/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch
    (from rev 264639, gnome-shell/trunk/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
  gnome-shell/repos/testing-i686/PKGBUILD
    (from rev 264639, gnome-shell/trunk/PKGBUILD)
  gnome-shell/repos/testing-i686/gnome-shell.install
    (from rev 264639, gnome-shell/trunk/gnome-shell.install)
  gnome-shell/repos/testing-i686/libsecret-crash.patch
    (from rev 264639, gnome-shell/trunk/libsecret-crash.patch)
  gnome-shell/repos/testing-i686/nm-libexecdir.patch
    (from rev 264639, gnome-shell/trunk/nm-libexecdir.patch)
  gnome-shell/repos/testing-i686/offscreen-memleak.patch
    (from rev 264639, gnome-shell/trunk/offscreen-memleak.patch)
  gnome-shell/repos/testing-x86_64/
  gnome-shell/repos/testing-x86_64/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch
    (from rev 264639, gnome-shell/trunk/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
  gnome-shell/repos/testing-x86_64/PKGBUILD
    (from rev 264639, gnome-shell/trunk/PKGBUILD)
  gnome-shell/repos/testing-x86_64/gnome-shell.install
    (from rev 264639, gnome-shell/trunk/gnome-shell.install)
  gnome-shell/repos/testing-x86_64/libsecret-crash.patch
    (from rev 264639, gnome-shell/trunk/libsecret-crash.patch)
  gnome-shell/repos/testing-x86_64/nm-libexecdir.patch
    (from rev 264639, gnome-shell/trunk/nm-libexecdir.patch)
  gnome-shell/repos/testing-x86_64/offscreen-memleak.patch
    (from rev 264639, gnome-shell/trunk/offscreen-memleak.patch)

--------------------------------------------------------------------------------+
 testing-i686/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch   |  106 ++++++++++
 testing-i686/PKGBUILD                                                          |   62 +++++
 testing-i686/gnome-shell.install                                               |   19 +
 testing-i686/libsecret-crash.patch                                             |   32 +++
 testing-i686/nm-libexecdir.patch                                               |   12 +
 testing-i686/offscreen-memleak.patch                                           |   30 ++
 testing-x86_64/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch |  106 ++++++++++
 testing-x86_64/PKGBUILD                                                        |   62 +++++
 testing-x86_64/gnome-shell.install                                             |   19 +
 testing-x86_64/libsecret-crash.patch                                           |   32 +++
 testing-x86_64/nm-libexecdir.patch                                             |   12 +
 testing-x86_64/offscreen-memleak.patch                                         |   30 ++
 12 files changed, 522 insertions(+)

Copied: gnome-shell/repos/testing-i686/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch (from rev 264639, gnome-shell/trunk/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
===================================================================
--- testing-i686/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch	                        (rev 0)
+++ testing-i686/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,106 @@
+From 26d339b91744dab5135ee9ea1d46fda62448ad95 Mon Sep 17 00:00:00 2001
+From: Jan de Groot <jgc at archlinux.org>
+Date: Mon, 11 Apr 2016 14:00:33 +0000
+Subject: [PATCH] Initialize framebuffer objects early so clutter will not
+ abort a few operations later.
+
+Checking offscreen for COGL_INVALID_HANDLE is not sufficient, as cogl_offscreen_new_with_texture doesn't initialize framebuffer objects but lets Cogl solve this the lazy way. cogl_offscreen_new_with_texture will never return COGL_INVALID_HANDLE anyways.
+---
+ src/st/st-theme-node-drawing.c    | 35 +++++++++++++++++++++++------------
+ src/st/st-theme-node-transition.c | 18 ++++++++++++++++--
+ 2 files changed, 39 insertions(+), 14 deletions(-)
+
+diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
+index 1f28ed9..4a6a234 100644
+--- a/src/st/st-theme-node-drawing.c
++++ b/src/st/st-theme-node-drawing.c
+@@ -2247,22 +2247,33 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
+                                        COGL_TEXTURE_NO_SLICING,
+                                        COGL_PIXEL_FORMAT_ANY);
+   if (buffer != COGL_INVALID_HANDLE)
+-    offscreen = cogl_offscreen_new_with_texture (buffer);
+-
+-  if (offscreen != COGL_INVALID_HANDLE)
+     {
+-      ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
++      CoglError *error = NULL;
++
++      offscreen = cogl_offscreen_new_with_texture (buffer);
++
++      if (cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error))
++        {
++          ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
++
++          cogl_framebuffer_orthographic (offscreen, 0, 0,
++                                         state->box_shadow_width,
++                                         state->box_shadow_height, 0, 1.0);
++          cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
+ 
+-      cogl_framebuffer_orthographic (offscreen, 0, 0,
+-                                     state->box_shadow_width,
+-                                     state->box_shadow_height, 0, 1.0);
+-      cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
++          st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
+ 
+-      st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
+-      cogl_handle_unref (offscreen);
++          cogl_handle_unref (offscreen);
+ 
+-      state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
+-                                                               buffer);
++          state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
++                                                                   buffer);
++        }
++      else
++        {
++          cogl_handle_unref (offscreen);
++
++          cogl_error_free (error);
++        }
+     }
+ 
+   if (buffer != COGL_INVALID_HANDLE)
+diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c
+index 1eef17b..f3350a1 100644
+--- a/src/st/st-theme-node-transition.c
++++ b/src/st/st-theme-node-transition.c
+@@ -242,6 +242,8 @@ setup_framebuffers (StThemeNodeTransition *transition,
+   StThemeNodeTransitionPrivate *priv = transition->priv;
+   guint width, height;
+ 
++  CoglError *catch_error = NULL;
++
+   /* template material to avoid unnecessary shader compilation */
+   static CoglHandle material_template = COGL_INVALID_HANDLE;
+ 
+@@ -269,13 +271,25 @@ setup_framebuffers (StThemeNodeTransition *transition,
+   if (priv->old_offscreen)
+     cogl_handle_unref (priv->old_offscreen);
+   priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture);
++  if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->old_offscreen), &catch_error))
++    {
++      cogl_object_unref (priv->old_offscreen);
++      cogl_error_free (catch_error);
++      priv->old_offscreen = COGL_INVALID_HANDLE;
++      g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
++    }
+ 
+   if (priv->new_offscreen)
+     cogl_handle_unref (priv->new_offscreen);
+   priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture);
+ 
+-  g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
+-  g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
++  if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->new_offscreen), &catch_error))
++    {
++      cogl_object_unref (priv->new_offscreen);
++      cogl_error_free (catch_error);
++      priv->new_offscreen = COGL_INVALID_HANDLE;
++      g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
++    }
+ 
+   if (priv->material == NULL)
+     {
+-- 
+2.7.1
+

Copied: gnome-shell/repos/testing-i686/PKGBUILD (from rev 264639, gnome-shell/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,62 @@
+# $Id$
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Flamelab <panosfilip at gmail.com
+
+pkgname=gnome-shell
+pkgver=3.20.0
+pkgrel=3
+pkgdesc="The next generation GNOME Shell"
+arch=(i686 x86_64)
+url="https://wiki.gnome.org/Projects/GnomeShell"
+license=(GPL2)
+depends=(accountsservice caribou gcr gjs gnome-bluetooth gnome-menus upower
+         gnome-session gnome-settings-daemon gnome-themes-standard gsettings-desktop-schemas
+         libcanberra-pulse libcroco libgdm libsecret mutter nm-connection-editor
+         telepathy-logger telepathy-mission-control unzip gstreamer)
+makedepends=(intltool gtk-doc gnome-control-center evolution-data-server python gobject-introspection)
+optdepends=('gnome-control-center: System settings'
+            'evolution-data-server: Evolution calendar integration')
+install=gnome-shell.install
+groups=(gnome)
+source=(https://download.gnome.org/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz
+        nm-libexecdir.patch
+	offscreen-memleak.patch
+        0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
+sha256sums=('ee69f461dd3d03caf788dfc64241275868ec0bcd1ef814f3cd2803c25796b888'
+            'e5bb10ad2e5c3e0fde3d05babd1bfdda701e553e02d493f7e54cb7832ce7e607'
+            '38bf66da2d92dbb3eab90d36feba0b1af65fe476d2982989dccd799aec0125a6'
+            '4dfd8a416fafdfa53ff07fd0433d5785f7bf434d3e576710879bfca5fe39c84f')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # FS#30747 FS#32730 Problems due to libexecdir different from NM
+  patch -Np1 -i ../nm-libexecdir.patch
+
+  # Fix memleak
+  patch -Np1 -i ../offscreen-memleak.patch
+
+  # Catch FBO allocation failure
+  patch -Np1 -i ../0001-Initialize-framebuffer-objects-early-so-clutter-will.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --sysconfdir=/etc \
+      --libexecdir=/usr/lib/gnome-shell \
+      --localstatedir=/var --disable-static \
+      --disable-schemas-compile
+
+  # https://bugzilla.gnome.org/show_bug.cgi?id=655517
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+
+  # Must exist; FS#37412
+  mkdir -p "$pkgdir/usr/share/gnome-shell/modes"
+}

Copied: gnome-shell/repos/testing-i686/gnome-shell.install (from rev 264639, gnome-shell/trunk/gnome-shell.install)
===================================================================
--- testing-i686/gnome-shell.install	                        (rev 0)
+++ testing-i686/gnome-shell.install	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,19 @@
+pkgname=gnome-shell
+
+post_install() {
+    glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+    if [ -f /usr/share/gconf/schemas/$pkgname.schemas ]; then
+        gconfpkg --uninstall $pkgname
+    fi
+}
+
+post_upgrade() {
+    post_install
+}
+
+post_remove() {
+    post_install
+}

Copied: gnome-shell/repos/testing-i686/libsecret-crash.patch (from rev 264639, gnome-shell/trunk/libsecret-crash.patch)
===================================================================
--- testing-i686/libsecret-crash.patch	                        (rev 0)
+++ testing-i686/libsecret-crash.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,32 @@
+From 021cecbce289f1d9c68a156d5b8dd204a73bc715 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau at redhat.com>
+Date: Sun, 20 Dec 2015 20:51:52 +0100
+Subject: NetworkAgent: Fix double-unref in get_secrets_keyring_cb()
+
+In get_secrets_keyring_cb, we own a ref on the 'attributes' hash table
+from secret_item_get_attributes), and a ref on the 'secret' object (from
+secret_item_get_secret(), but in the SHELL_KEYRING_SK_TAG case, we unref
+these once before breaking out of the loop, and the second time after
+breaking out of the loop.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759708
+---
+ src/shell-network-agent.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/shell-network-agent.c b/src/shell-network-agent.c
+index 5d99167..da0f7e5 100644
+--- a/src/shell-network-agent.c
++++ b/src/shell-network-agent.c
+@@ -314,8 +314,6 @@ get_secrets_keyring_cb (GObject            *source,
+ 
+               secrets_found = TRUE;
+ 
+-              g_hash_table_unref (attributes);
+-              secret_value_unref (secret);
+               break;
+             }
+         }
+-- 
+cgit v0.11.2
+

Copied: gnome-shell/repos/testing-i686/nm-libexecdir.patch (from rev 264639, gnome-shell/trunk/nm-libexecdir.patch)
===================================================================
--- testing-i686/nm-libexecdir.patch	                        (rev 0)
+++ testing-i686/nm-libexecdir.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,12 @@
+diff -u -Nr gnome-shell-3.6.3.1/js/ui/components/networkAgent.js gnome-shell-3.6.3.1-nmlibexecdir/js/ui/components/networkAgent.js
+--- gnome-shell-3.6.3.1/js/ui/components/networkAgent.js	2013-02-20 20:31:03.000000000 +0100
++++ gnome-shell-3.6.3.1-nmlibexecdir/js/ui/components/networkAgent.js	2013-03-10 17:13:46.120907065 +0100
+@@ -686,7 +686,7 @@
+                     } catch(e) { } // ignore errors if key does not exist
+                     let path = binary;
+                     if (!GLib.path_is_absolute(path)) {
+-                        path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
++                        path = GLib.build_filenamev(["/usr/lib/networkmanager", path]);
+                     }
+ 
+                     if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE))

Copied: gnome-shell/repos/testing-i686/offscreen-memleak.patch (from rev 264639, gnome-shell/trunk/offscreen-memleak.patch)
===================================================================
--- testing-i686/offscreen-memleak.patch	                        (rev 0)
+++ testing-i686/offscreen-memleak.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,30 @@
+From 941513b280433c269491572b7b1de2a7c5bab21b Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner at nvidia.com>
+Date: Fri, 18 Mar 2016 16:00:05 -0700
+Subject: st: Fix offscreen leak if cogl_framebuffer_allocate fails
+
+If cogl_framebuffer_allocate fails in _st_create_shadow_pipeline_from_actor, the
+CoglOffscreen* that was allocated earlier in the function is leaked.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=735705
+
+Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
+---
+ src/st/st-private.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/st/st-private.c b/src/st/st-private.c
+index 559336c..d40eceb 100644
+--- a/src/st/st-private.c
++++ b/src/st/st-private.c
+@@ -442,6 +442,7 @@ _st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
+       if (!cogl_framebuffer_allocate (fb, &catch_error))
+         {
+           cogl_error_free (catch_error);
++          cogl_object_unref (offscreen);
+           cogl_object_unref (buffer);
+           return NULL;
+         }
+-- 
+cgit v0.12
+

Copied: gnome-shell/repos/testing-x86_64/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch (from rev 264639, gnome-shell/trunk/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
===================================================================
--- testing-x86_64/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch	                        (rev 0)
+++ testing-x86_64/0001-Initialize-framebuffer-objects-early-so-clutter-will.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,106 @@
+From 26d339b91744dab5135ee9ea1d46fda62448ad95 Mon Sep 17 00:00:00 2001
+From: Jan de Groot <jgc at archlinux.org>
+Date: Mon, 11 Apr 2016 14:00:33 +0000
+Subject: [PATCH] Initialize framebuffer objects early so clutter will not
+ abort a few operations later.
+
+Checking offscreen for COGL_INVALID_HANDLE is not sufficient, as cogl_offscreen_new_with_texture doesn't initialize framebuffer objects but lets Cogl solve this the lazy way. cogl_offscreen_new_with_texture will never return COGL_INVALID_HANDLE anyways.
+---
+ src/st/st-theme-node-drawing.c    | 35 +++++++++++++++++++++++------------
+ src/st/st-theme-node-transition.c | 18 ++++++++++++++++--
+ 2 files changed, 39 insertions(+), 14 deletions(-)
+
+diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
+index 1f28ed9..4a6a234 100644
+--- a/src/st/st-theme-node-drawing.c
++++ b/src/st/st-theme-node-drawing.c
+@@ -2247,22 +2247,33 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
+                                        COGL_TEXTURE_NO_SLICING,
+                                        COGL_PIXEL_FORMAT_ANY);
+   if (buffer != COGL_INVALID_HANDLE)
+-    offscreen = cogl_offscreen_new_with_texture (buffer);
+-
+-  if (offscreen != COGL_INVALID_HANDLE)
+     {
+-      ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
++      CoglError *error = NULL;
++
++      offscreen = cogl_offscreen_new_with_texture (buffer);
++
++      if (cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error))
++        {
++          ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
++
++          cogl_framebuffer_orthographic (offscreen, 0, 0,
++                                         state->box_shadow_width,
++                                         state->box_shadow_height, 0, 1.0);
++          cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
+ 
+-      cogl_framebuffer_orthographic (offscreen, 0, 0,
+-                                     state->box_shadow_width,
+-                                     state->box_shadow_height, 0, 1.0);
+-      cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
++          st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
+ 
+-      st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
+-      cogl_handle_unref (offscreen);
++          cogl_handle_unref (offscreen);
+ 
+-      state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
+-                                                               buffer);
++          state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
++                                                                   buffer);
++        }
++      else
++        {
++          cogl_handle_unref (offscreen);
++
++          cogl_error_free (error);
++        }
+     }
+ 
+   if (buffer != COGL_INVALID_HANDLE)
+diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c
+index 1eef17b..f3350a1 100644
+--- a/src/st/st-theme-node-transition.c
++++ b/src/st/st-theme-node-transition.c
+@@ -242,6 +242,8 @@ setup_framebuffers (StThemeNodeTransition *transition,
+   StThemeNodeTransitionPrivate *priv = transition->priv;
+   guint width, height;
+ 
++  CoglError *catch_error = NULL;
++
+   /* template material to avoid unnecessary shader compilation */
+   static CoglHandle material_template = COGL_INVALID_HANDLE;
+ 
+@@ -269,13 +271,25 @@ setup_framebuffers (StThemeNodeTransition *transition,
+   if (priv->old_offscreen)
+     cogl_handle_unref (priv->old_offscreen);
+   priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture);
++  if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->old_offscreen), &catch_error))
++    {
++      cogl_object_unref (priv->old_offscreen);
++      cogl_error_free (catch_error);
++      priv->old_offscreen = COGL_INVALID_HANDLE;
++      g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
++    }
+ 
+   if (priv->new_offscreen)
+     cogl_handle_unref (priv->new_offscreen);
+   priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture);
+ 
+-  g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
+-  g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
++  if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->new_offscreen), &catch_error))
++    {
++      cogl_object_unref (priv->new_offscreen);
++      cogl_error_free (catch_error);
++      priv->new_offscreen = COGL_INVALID_HANDLE;
++      g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
++    }
+ 
+   if (priv->material == NULL)
+     {
+-- 
+2.7.1
+

Copied: gnome-shell/repos/testing-x86_64/PKGBUILD (from rev 264639, gnome-shell/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,62 @@
+# $Id$
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Flamelab <panosfilip at gmail.com
+
+pkgname=gnome-shell
+pkgver=3.20.0
+pkgrel=3
+pkgdesc="The next generation GNOME Shell"
+arch=(i686 x86_64)
+url="https://wiki.gnome.org/Projects/GnomeShell"
+license=(GPL2)
+depends=(accountsservice caribou gcr gjs gnome-bluetooth gnome-menus upower
+         gnome-session gnome-settings-daemon gnome-themes-standard gsettings-desktop-schemas
+         libcanberra-pulse libcroco libgdm libsecret mutter nm-connection-editor
+         telepathy-logger telepathy-mission-control unzip gstreamer)
+makedepends=(intltool gtk-doc gnome-control-center evolution-data-server python gobject-introspection)
+optdepends=('gnome-control-center: System settings'
+            'evolution-data-server: Evolution calendar integration')
+install=gnome-shell.install
+groups=(gnome)
+source=(https://download.gnome.org/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz
+        nm-libexecdir.patch
+	offscreen-memleak.patch
+        0001-Initialize-framebuffer-objects-early-so-clutter-will.patch)
+sha256sums=('ee69f461dd3d03caf788dfc64241275868ec0bcd1ef814f3cd2803c25796b888'
+            'e5bb10ad2e5c3e0fde3d05babd1bfdda701e553e02d493f7e54cb7832ce7e607'
+            '38bf66da2d92dbb3eab90d36feba0b1af65fe476d2982989dccd799aec0125a6'
+            '4dfd8a416fafdfa53ff07fd0433d5785f7bf434d3e576710879bfca5fe39c84f')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # FS#30747 FS#32730 Problems due to libexecdir different from NM
+  patch -Np1 -i ../nm-libexecdir.patch
+
+  # Fix memleak
+  patch -Np1 -i ../offscreen-memleak.patch
+
+  # Catch FBO allocation failure
+  patch -Np1 -i ../0001-Initialize-framebuffer-objects-early-so-clutter-will.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --sysconfdir=/etc \
+      --libexecdir=/usr/lib/gnome-shell \
+      --localstatedir=/var --disable-static \
+      --disable-schemas-compile
+
+  # https://bugzilla.gnome.org/show_bug.cgi?id=655517
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+
+  # Must exist; FS#37412
+  mkdir -p "$pkgdir/usr/share/gnome-shell/modes"
+}

Copied: gnome-shell/repos/testing-x86_64/gnome-shell.install (from rev 264639, gnome-shell/trunk/gnome-shell.install)
===================================================================
--- testing-x86_64/gnome-shell.install	                        (rev 0)
+++ testing-x86_64/gnome-shell.install	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,19 @@
+pkgname=gnome-shell
+
+post_install() {
+    glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+    if [ -f /usr/share/gconf/schemas/$pkgname.schemas ]; then
+        gconfpkg --uninstall $pkgname
+    fi
+}
+
+post_upgrade() {
+    post_install
+}
+
+post_remove() {
+    post_install
+}

Copied: gnome-shell/repos/testing-x86_64/libsecret-crash.patch (from rev 264639, gnome-shell/trunk/libsecret-crash.patch)
===================================================================
--- testing-x86_64/libsecret-crash.patch	                        (rev 0)
+++ testing-x86_64/libsecret-crash.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,32 @@
+From 021cecbce289f1d9c68a156d5b8dd204a73bc715 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau at redhat.com>
+Date: Sun, 20 Dec 2015 20:51:52 +0100
+Subject: NetworkAgent: Fix double-unref in get_secrets_keyring_cb()
+
+In get_secrets_keyring_cb, we own a ref on the 'attributes' hash table
+from secret_item_get_attributes), and a ref on the 'secret' object (from
+secret_item_get_secret(), but in the SHELL_KEYRING_SK_TAG case, we unref
+these once before breaking out of the loop, and the second time after
+breaking out of the loop.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759708
+---
+ src/shell-network-agent.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/shell-network-agent.c b/src/shell-network-agent.c
+index 5d99167..da0f7e5 100644
+--- a/src/shell-network-agent.c
++++ b/src/shell-network-agent.c
+@@ -314,8 +314,6 @@ get_secrets_keyring_cb (GObject            *source,
+ 
+               secrets_found = TRUE;
+ 
+-              g_hash_table_unref (attributes);
+-              secret_value_unref (secret);
+               break;
+             }
+         }
+-- 
+cgit v0.11.2
+

Copied: gnome-shell/repos/testing-x86_64/nm-libexecdir.patch (from rev 264639, gnome-shell/trunk/nm-libexecdir.patch)
===================================================================
--- testing-x86_64/nm-libexecdir.patch	                        (rev 0)
+++ testing-x86_64/nm-libexecdir.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,12 @@
+diff -u -Nr gnome-shell-3.6.3.1/js/ui/components/networkAgent.js gnome-shell-3.6.3.1-nmlibexecdir/js/ui/components/networkAgent.js
+--- gnome-shell-3.6.3.1/js/ui/components/networkAgent.js	2013-02-20 20:31:03.000000000 +0100
++++ gnome-shell-3.6.3.1-nmlibexecdir/js/ui/components/networkAgent.js	2013-03-10 17:13:46.120907065 +0100
+@@ -686,7 +686,7 @@
+                     } catch(e) { } // ignore errors if key does not exist
+                     let path = binary;
+                     if (!GLib.path_is_absolute(path)) {
+-                        path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
++                        path = GLib.build_filenamev(["/usr/lib/networkmanager", path]);
+                     }
+ 
+                     if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE))

Copied: gnome-shell/repos/testing-x86_64/offscreen-memleak.patch (from rev 264639, gnome-shell/trunk/offscreen-memleak.patch)
===================================================================
--- testing-x86_64/offscreen-memleak.patch	                        (rev 0)
+++ testing-x86_64/offscreen-memleak.patch	2016-04-11 14:25:29 UTC (rev 264640)
@@ -0,0 +1,30 @@
+From 941513b280433c269491572b7b1de2a7c5bab21b Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner at nvidia.com>
+Date: Fri, 18 Mar 2016 16:00:05 -0700
+Subject: st: Fix offscreen leak if cogl_framebuffer_allocate fails
+
+If cogl_framebuffer_allocate fails in _st_create_shadow_pipeline_from_actor, the
+CoglOffscreen* that was allocated earlier in the function is leaked.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=735705
+
+Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
+---
+ src/st/st-private.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/st/st-private.c b/src/st/st-private.c
+index 559336c..d40eceb 100644
+--- a/src/st/st-private.c
++++ b/src/st/st-private.c
+@@ -442,6 +442,7 @@ _st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
+       if (!cogl_framebuffer_allocate (fb, &catch_error))
+         {
+           cogl_error_free (catch_error);
++          cogl_object_unref (offscreen);
+           cogl_object_unref (buffer);
+           return NULL;
+         }
+-- 
+cgit v0.12
+



More information about the arch-commits mailing list