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 <j...@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 <ib...@archlinux.org> +# Contributor: Flamelab <panosfi...@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 <cferg...@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 <aplatt...@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 <aplatt...@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 <j...@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 <ib...@archlinux.org> +# Contributor: Flamelab <panosfi...@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 <cferg...@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 <aplatt...@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 <aplatt...@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 +