summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2014-04-12 09:35:42 +0000
committerPacho Ramos <pacho@gentoo.org>2014-04-12 09:35:42 +0000
commit8566a85da17ab375b4edac7eeff63e163e630421 (patch)
tree49b724a54d0060c4c1657cdfaa1163b83ded3308 /gnome-base/gnome-shell
parentApply multiple upstream fixes from 3.10 and master branches (this includes th... (diff)
downloadgentoo-2-8566a85da17ab375b4edac7eeff63e163e630421.tar.gz
gentoo-2-8566a85da17ab375b4edac7eeff63e163e630421.tar.bz2
gentoo-2-8566a85da17ab375b4edac7eeff63e163e630421.zip
Apply multiple upstream fixes from 3.10 and master branches (this includes the re-addition of wired connection indicator, bug #507400 by Alexi Yelistratov). Drop old.
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'gnome-base/gnome-shell')
-rw-r--r--gnome-base/gnome-shell/ChangeLog26
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch41
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch199
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch44
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch28
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch158
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch222
-rwxr-xr-xgnome-base/gnome-shell/files/gnome-shell-3.7.90-bluetooth-flag.patch45
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.0-networkmanager-flag-r1.patch200
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.3-networkmanager-flag.patch200
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.3-relock-screen.patch226
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch94
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-close-rundialog.patch32
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch28
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch27
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch22
-rw-r--r--gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch123
-rw-r--r--gnome-base/gnome-shell/gnome-shell-3.10.3.ebuild220
-rw-r--r--gnome-base/gnome-shell/gnome-shell-3.10.4-r2.ebuild (renamed from gnome-base/gnome-shell/gnome-shell-3.10.4.ebuild)26
-rw-r--r--gnome-base/gnome-shell/gnome-shell-3.8.4-r2.ebuild242
20 files changed, 519 insertions, 1684 deletions
diff --git a/gnome-base/gnome-shell/ChangeLog b/gnome-base/gnome-shell/ChangeLog
index 0727f11acdb6..21e0551c86a0 100644
--- a/gnome-base/gnome-shell/ChangeLog
+++ b/gnome-base/gnome-shell/ChangeLog
@@ -1,6 +1,30 @@
# ChangeLog for gnome-base/gnome-shell
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/ChangeLog,v 1.71 2014/03/16 10:55:04 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/ChangeLog,v 1.72 2014/04/12 09:35:41 pacho Exp $
+
+*gnome-shell-3.10.4-r2 (12 Apr 2014)
+
+ 12 Apr 2014; Pacho Ramos <pacho@gentoo.org>
+ +files/gnome-shell-3.10.4-activate-workspace.patch,
+ +files/gnome-shell-3.10.4-broken-crosshairs.patch,
+ +files/gnome-shell-3.10.4-restore-pref.patch,
+ +files/gnome-shell-3.10.4-scale-factor.patch,
+ +files/gnome-shell-3.10.4-wired-network.patch, +gnome-shell-3.10.4-r2.ebuild,
+ -files/gnome-shell-3.6.0-networkmanager-flag.patch,
+ -files/gnome-shell-3.7.90-bluetooth-flag.patch,
+ -files/gnome-shell-3.8.0-networkmanager-flag-r1.patch,
+ -files/gnome-shell-3.8.3-networkmanager-flag.patch,
+ -files/gnome-shell-3.8.3-relock-screen.patch,
+ -files/gnome-shell-3.8.4-allocate-scrollbars.patch,
+ -files/gnome-shell-3.8.4-close-rundialog.patch,
+ -files/gnome-shell-3.8.4-events-lock.patch,
+ -files/gnome-shell-3.8.4-nodisplay.patch,
+ -files/gnome-shell-3.8.4-reset-opacity.patch,
+ -files/gnome-shell-3.8.4-revert-async.patch, -gnome-shell-3.10.3.ebuild,
+ -gnome-shell-3.10.4.ebuild, -gnome-shell-3.8.4-r2.ebuild:
+ Apply multiple upstream fixes from 3.10 and master branches (this includes the
+ re-addition of wired connection indicator, bug #507400 by Alexi Yelistratov).
+ Drop old.
16 Mar 2014; Pacho Ramos <pacho@gentoo.org> gnome-shell-3.10.4-r1.ebuild:
amd64 stable, bug #503952
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch
new file mode 100644
index 000000000000..03277977bc69
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch
@@ -0,0 +1,41 @@
+From 0dab133fe578b3b12241ce6f01b58bc755088da8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Mon, 30 Sep 2013 19:55:26 +0200
+Subject: windowManager: Activate new workspace before removing the current one
+
+When removing the current workspace, the active workspace is changed
+to the preceding one automatically before we change explicitly to the
+last workspace. There is no good reason to change workspaces twice in
+this case, we can avoid the first one just by changing to the new
+workspace before removing any workspaces.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=709064
+
+diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
+index 75be4c5..31b7d2d 100644
+--- a/js/ui/windowManager.js
++++ b/js/ui/windowManager.js
+@@ -254,6 +254,8 @@ const WorkspaceTracker = new Lang.Class({
+ if (removingCurrentWorkspace) {
+ // "Merge" the empty workspace we are removing with the one at the end
+ this._wm.blockAnimations();
++ global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
++ this._wm.unblockAnimations();
+ }
+
+ // Delete other empty workspaces; do it from the end to avoid index changes
+@@ -262,11 +264,6 @@ const WorkspaceTracker = new Lang.Class({
+ global.screen.remove_workspace(this._workspaces[i], global.get_current_time());
+ }
+
+- if (removingCurrentWorkspace) {
+- global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
+- this._wm.unblockAnimations();
+- }
+-
+ this._checkWorkspacesId = 0;
+ return false;
+ },
+--
+cgit v0.10.1
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch
new file mode 100644
index 000000000000..9efc8fd018d6
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch
@@ -0,0 +1,199 @@
+From 713d4aa6c4a606c8479d7160e9df3fb79d7ec7f0 Mon Sep 17 00:00:00 2001
+From: Magdalen Berns <m.berns@thismagpie.com>
+Date: Wed, 5 Feb 2014 20:53:21 +0000
+Subject: [PATCH] Magnifier: Restore crosshairs
+
+This patch is to restore broken crosshairs so they may be used
+once more
+
+https://bugzilla.gnome.org/show_bug.cgi?id=723709
+ magnifier.js
+---
+ js/ui/magnifier.js | 131 +++++++++++++++++++++++------------------------------
+ 1 file changed, 56 insertions(+), 75 deletions(-)
+
+diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js
+index 2a6ac38..96c12b2 100644
+--- a/js/ui/magnifier.js
++++ b/js/ui/magnifier.js
+@@ -57,20 +57,6 @@ const Magnifier = new Lang.Class({
+ // Magnifier is a manager of ZoomRegions.
+ this._zoomRegions = [];
+
+- // Export to dbus.
+- magDBusService = new MagnifierDBus.ShellMagnifier();
+-
+- let showAtLaunch = this._settingsInit();
+- this.setActive(showAtLaunch);
+- },
+-
+- _initialize: function() {
+- if (this._initialized)
+- return;
+- this._initialized = true;
+-
+- this._settingsInitLate();
+-
+ // Create small clutter tree for the magnified mouse.
+ let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
+ this._mouseSprite = new Clutter.Texture();
+@@ -86,11 +72,15 @@ const Magnifier = new Lang.Class({
+
+ let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
+ this._zoomRegions.push(aZoomRegion);
+- this._settingsInitRegion(aZoomRegion);
++ let showAtLaunch = this._settingsInit(aZoomRegion);
+ aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
+
+ cursorTracker.connect('cursor-changed', Lang.bind(this, this._updateMouseSprite));
+ this._cursorTracker = cursorTracker;
++
++ // Export to dbus.
++ magDBusService = new MagnifierDBus.ShellMagnifier();
++ this.setActive(showAtLaunch);
+ },
+
+ /**
+@@ -115,12 +105,6 @@ const Magnifier = new Lang.Class({
+ * @activate: Boolean to activate or de-activate the magnifier.
+ */
+ setActive: function(activate) {
+- if (activate == this.isActive())
+- return;
+-
+- if (activate)
+- this._initialize();
+-
+ this._zoomRegions.forEach (function(zoomRegion, index, array) {
+ zoomRegion.setActive(activate);
+ });
+@@ -452,68 +436,64 @@ const Magnifier = new Lang.Class({
+ this._mouseSprite.set_anchor_point(xHot, yHot);
+ },
+
+- _settingsInitRegion: function(zoomRegion) {
+- // Mag factor is accurate to two decimal places.
+- let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
+- if (aPref != 0.0)
+- zoomRegion.setMagFactor(aPref, aPref);
+-
+- aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
+- if (aPref)
+- zoomRegion.setScreenPosition(aPref);
+-
+- zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
+- zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
+-
+- aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
+- if (aPref)
+- zoomRegion.setMouseTrackingMode(aPref);
+-
+- aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
+- if (aPref)
+- zoomRegion.setFocusTrackingMode(aPref);
+-
+- aPref = this._settings.get_enum(CARET_TRACKING_KEY);
+- if (aPref)
+- zoomRegion.setCaretTrackingMode(aPref);
+-
+- aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
+- if (aPref)
+- zoomRegion.setInvertLightness(aPref);
+-
+- aPref = this._settings.get_double(COLOR_SATURATION_KEY);
+- if (aPref)
+- zoomRegion.setColorSaturation(aPref);
+-
+- let bc = {};
+- bc.r = this._settings.get_double(BRIGHT_RED_KEY);
+- bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
+- bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
+- zoomRegion.setBrightness(bc);
+-
+- bc.r = this._settings.get_double(CONTRAST_RED_KEY);
+- bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
+- bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
+- zoomRegion.setContrast(bc);
+- },
+-
+- _settingsInit: function() {
++ _settingsInit: function(zoomRegion) {
+ this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA });
+ this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA });
+
+- this._appSettings.connect('changed::' + SHOW_KEY, Lang.bind(this, function() {
+- let active = this._appSettings.get_boolean(SHOW_KEY);
+- this.setActive(active);
+- }));
+-
+- return this._appSettings.get_boolean(SHOW_KEY);
+- },
++ if (zoomRegion) {
++ // Mag factor is accurate to two decimal places.
++ let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
++ if (aPref != 0.0)
++ zoomRegion.setMagFactor(aPref, aPref);
++
++ aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
++ if (aPref)
++ zoomRegion.setScreenPosition(aPref);
++
++ zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
++ zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
++
++ aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
++ if (aPref)
++ zoomRegion.setMouseTrackingMode(aPref);
++
++ aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
++ if (aPref)
++ zoomRegion.setFocusTrackingMode(aPref);
++
++ aPref = this._settings.get_enum(CARET_TRACKING_KEY);
++ if (aPref)
++ zoomRegion.setCaretTrackingMode(aPref);
++
++ aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
++ if (aPref)
++ zoomRegion.setInvertLightness(aPref);
++
++ aPref = this._settings.get_double(COLOR_SATURATION_KEY);
++ if (aPref)
++ zoomRegion.setColorSaturation(aPref);
++
++ let bc = {};
++ bc.r = this._settings.get_double(BRIGHT_RED_KEY);
++ bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
++ bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
++ zoomRegion.setBrightness(bc);
++
++ bc.r = this._settings.get_double(CONTRAST_RED_KEY);
++ bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
++ bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
++ zoomRegion.setContrast(bc);
++ }
+
+- _settingsInitLate: function() {
+ let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY);
+ this.addCrosshairs();
+ this.setCrosshairsVisible(showCrosshairs);
+
++ this._appSettings.connect('changed::' + SHOW_KEY,
++ Lang.bind(this, function() {
++ this.setActive(this._appSettings.get_boolean(SHOW_KEY));
++ }));
++
+ this._settings.connect('changed::' + SCREEN_POSITION_KEY,
+ Lang.bind(this, this._updateScreenPosition));
+ this._settings.connect('changed::' + MAG_FACTOR_KEY,
+@@ -577,6 +557,7 @@ const Magnifier = new Lang.Class({
+ Lang.bind(this, function() {
+ this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY));
+ }));
++ return this._appSettings.get_boolean(SHOW_KEY);
+ },
+
+ _updateScreenPosition: function() {
+--
+1.8.3.2
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch
new file mode 100644
index 000000000000..21c1b4c9f8f8
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch
@@ -0,0 +1,44 @@
+From 45041b421561ffac0bdfc92680a7a948d3623e65 Mon Sep 17 00:00:00 2001
+From: Adel Gadllah <adel.gadllah@gmail.com>
+Date: Fri, 21 Feb 2014 12:30:40 +0100
+Subject: perf: Restore shell after runs
+
+Currently running the perf tool results into no wm running
+afterwards making it hard for the user to get the results from a terminal
+and generally does not make it easy for users to run it to gather numbers.
+
+So restore the shell after the test has completed.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=724870
+
+diff --git a/src/gnome-shell-perf-tool.in b/src/gnome-shell-perf-tool.in
+index 1ad67b8..4494a92 100644
+--- a/src/gnome-shell-perf-tool.in
++++ b/src/gnome-shell-perf-tool.in
+@@ -99,6 +99,15 @@ def run_shell(perf_output=None):
+ shell.wait()
+ return shell.returncode == 0
+
++def restore_shell():
++ pid = os.fork()
++ if (pid == 0):
++ if "MUTTER_WM_CLASS_FILTER" in os.environ:
++ del os.environ["MUTTER_WM_CLASS_FILTER"]
++ os.execlp("gnome-shell", "gnome-shell", "--replace")
++ else:
++ sys.exit(0)
++
+ def upload_performance_report(report_text):
+ try:
+ config_home = os.environ['XDG_CONFIG_HOME']
+@@ -320,6 +329,6 @@ if args:
+
+ normal_exit = run_performance_test()
+ if normal_exit:
+- sys.exit(0)
++ restore_shell()
+ else:
+ sys.exit(1)
+--
+cgit v0.10.1
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch
new file mode 100644
index 000000000000..ff146938fb64
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch
@@ -0,0 +1,28 @@
+From a3d9946803326a5d1fc76c617733df82c7057434 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Sat, 22 Feb 2014 18:00:57 -0500
+Subject: shell-global: Only set the scale factor if get_setting succeeded
+
+If gdk_screen_get_setting fails, like if it's running without XSettings,
+then the GValue will have a value of 0. A lot of code tries to divide by
+the scale factor. This produces NaN, and combined with the fact that NaN
+is "leaky", we very quickly end up spinning out of control.
+
+diff --git a/src/shell-global.c b/src/shell-global.c
+index 852d14f..7a9f6c7 100644
+--- a/src/shell-global.c
++++ b/src/shell-global.c
+@@ -749,8 +749,8 @@ update_scale_factor (GdkScreen *screen, gpointer data)
+ GValue value = G_VALUE_INIT;
+
+ g_value_init (&value, G_TYPE_INT);
+- gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor", &value);
+- g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
++ if (gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor", &value))
++ g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
+ }
+
+ /* This is an IBus workaround. The flow of events with IBus is that every time
+--
+cgit v0.10.1
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch
new file mode 100644
index 000000000000..3ad0b4517f6a
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch
@@ -0,0 +1,158 @@
+From 7051411be7bbfd9e0c2e831762c87872e5bde468 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Thu, 23 Jan 2014 14:25:06 -0500
+Subject: network: Add a Wired device
+
+This isn't quite like the design, as we don't show icons for other
+devices when wired is in an error state.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=708966
+
+diff --git a/js/ui/status/network.js b/js/ui/status/network.js
+index a3de3dd..3dc694e 100644
+--- a/js/ui/status/network.js
++++ b/js/ui/status/network.js
+@@ -21,6 +21,7 @@ const Util = imports.misc.util;
+
+ const NMConnectionCategory = {
+ INVALID: 'invalid',
++ WIRED: 'wired',
+ WIRELESS: 'wireless',
+ WWAN: 'wwan',
+ VPN: 'vpn'
+@@ -296,6 +297,11 @@ const NMConnectionDevice = new Lang.Class({
+ this._activeConnectionChangedId = this._device.connect('notify::active-connection', Lang.bind(this, this._activeConnectionChanged));
+ },
+
++ _autoConnect: function() {
++ let connection = new NetworkManager.Connection();
++ this._client.add_and_activate_connection(connection, this._device, null, null);
++ },
++
+ destroy: function() {
+ if (this._stateChangedId) {
+ GObject.Object.prototype.disconnect.call(this._device, this._stateChangedId);
+@@ -413,6 +419,48 @@ const NMConnectionDevice = new Lang.Class({
+ },
+ });
+
++const NMDeviceWired = new Lang.Class({
++ Name: 'NMDeviceWired',
++ Extends: NMConnectionDevice,
++ category: NMConnectionCategory.WIRED,
++
++ _init: function(client, device, settings) {
++ this.parent(client, device, settings);
++
++ this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"), device));
++ },
++
++ _isConnected: function() {
++ if (!this._device.active_connection)
++ return false;
++
++ let state = this._device.active_connection.state;
++ return state >= NetworkManager.ActiveConnectionState.ACTIVATING;
++ },
++
++ _sync: function() {
++ this.item.actor.visible = this._isConnected();
++ this.parent();
++ },
++
++ _getMenuIcon: function() {
++ if (this._device.active_connection)
++ return this.getIndicatorIcon();
++ else
++ return 'network-wired-disconnected-symbolic';
++ },
++
++ getIndicatorIcon: function() {
++ let state = this._device.active_connection.state;
++ if (state == NetworkManager.ActiveConnectionState.ACTIVATING)
++ return 'network-wired-acquiring-symbolic';
++ else if (state == NetworkManager.ActiveConnectionState.ACTIVATED)
++ return 'network-wired-symbolic';
++ else
++ return 'network-wired-disconnected-symbolic';
++ }
++});
++
+ const NMDeviceModem = new Lang.Class({
+ Name: 'NMDeviceModem',
+ Extends: NMConnectionDevice,
+@@ -510,18 +558,6 @@ const NMDeviceBluetooth = new Lang.Class({
+ this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
+ },
+
+- _autoConnect: function() {
+- // FIXME: DUN devices are configured like modems, so
+- // We need to spawn the mobile wizard
+- // but the network panel doesn't support bluetooth at the moment
+- // so we just create an empty connection and hope
+- // that this phone supports PAN
+-
+- let connection = new NetworkManager.Connection();
+- this._client.add_and_activate_connection(connection, this._device, null, null);
+- return true;
+- },
+-
+ _getMenuIcon: function() {
+ if (this._device.active_connection)
+ return this.getIndicatorIcon();
+@@ -1266,6 +1302,7 @@ const NMApplet = new Lang.Class({
+
+ // Device types
+ this._dtypes = { };
++ this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired;
+ this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
+ this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
+ this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
+@@ -1273,6 +1310,7 @@ const NMApplet = new Lang.Class({
+
+ // Connection types
+ this._ctypes = { };
++ this._ctypes[NetworkManager.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED;
+ this._ctypes[NetworkManager.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS;
+ this._ctypes[NetworkManager.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN;
+ this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
+@@ -1295,6 +1333,15 @@ const NMApplet = new Lang.Class({
+ this._tryLateInit();
+ },
+
++ _createDeviceCategory: function() {
++ let category = {
++ section: new PopupMenu.PopupMenuSection(),
++ devices: [ ],
++ };
++ this.menu.addMenuItem(category.section);
++ return category;
++ },
++
+ _tryLateInit: function() {
+ if (!this._client || !this._settings)
+ return;
+@@ -1310,17 +1357,9 @@ const NMApplet = new Lang.Class({
+ this._nmDevices = [];
+ this._devices = { };
+
+- this._devices.wireless = {
+- section: new PopupMenu.PopupMenuSection(),
+- devices: [ ],
+- };
+- this.menu.addMenuItem(this._devices.wireless.section);
+-
+- this._devices.wwan = {
+- section: new PopupMenu.PopupMenuSection(),
+- devices: [ ],
+- };
+- this.menu.addMenuItem(this._devices.wwan.section);
++ this._devices.wired = this._createDeviceCategory();
++ this._devices.wireless = this._createDeviceCategory();
++ this._devices.wwan = this._createDeviceCategory();
+
+ this._vpnSection = new NMVPNSection(this._client);
+ this._vpnSection.connect('activation-failed', Lang.bind(this, this._onActivationFailed));
+--
+cgit v0.10.1
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch
deleted file mode 100644
index c996cc00e4f7..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From da0912a522f80a72db5b73504dc82941067880b2 Mon Sep 17 00:00:00 2001
-From: Michael Biebl <biebl@debian.org>
-Date: Thu, 22 Dec 2011 22:04:12 +0100
-Subject: [PATCH] Make NM optional
-
-[ Alexandre Rostovtsev <tetromino@gentoo.org> :
- * use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
- * take care to not import ui.status.network if nm is disabled;
- * do not try to reassign to const variables;
- * no point really in fiddling with the list of installed js files;
- * don't build shell-mobile-providers if nm is disabled;
- * use "networkmanager" instead of "network_manager" because THE
- BIKESHED SHOULD BE BLUE, also because the upstream package name is
- NetworkManager, not Network_Manager. ]
----
- configure.ac | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
- js/Makefile.am | 1 +
- js/misc/config.js.in | 2 ++
- js/ui/panel.js | 12 +++++++-----
- js/ui/sessionMode.js | 7 ++++++-
- src/Makefile.am | 17 ++++++++++++-----
- 6 files changed, 74 insertions(+), 12 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index e6ac88c..3ff8777 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -96,10 +96,43 @@ PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
- telepathy-logger-0.2 >= $TELEPATHY_LOGGER_MIN_VERSION
- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
-- libnm-glib libnm-util gnome-keyring-1
-+ gnome-keyring-1
- gcr-3 >= $GCR_MIN_VERSION
- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
-
-+##########################
-+# Check for NetworkManager
-+##########################
-+NM_MIN_VERSION=0.9
-+AC_ARG_ENABLE(networkmanager,
-+ AS_HELP_STRING([--disable-networkmanager],
-+ [disable NetworkManager support @<:@default=auto@:>@]),,
-+ [enable_networkmanager=auto])
-+
-+if test "x$enable_networkmanager" != "xno"; then
-+ PKG_CHECK_MODULES(NETWORKMANAGER,
-+ [libnm-glib libnm-util gnome-keyring-1],
-+ [have_networkmanager=yes],
-+ [have_networkmanager=no])
-+
-+ GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
-+ GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
-+else
-+ have_networkmanager="no (disabled)"
-+fi
-+
-+if test "x$have_networkmanager" = "xyes"; then
-+ AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
-+ AC_SUBST([HAVE_NETWORKMANAGER], [1])
-+else
-+ if test "x$enable_networkmanager" = "xyes"; then
-+ AC_MSG_ERROR([Couldn't find NetworkManager.])
-+ fi
-+ AC_SUBST([HAVE_NETWORKMANAGER], [0])
-+fi
-+
-+AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
-+
- PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
-
- PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
-@@ -260,3 +293,15 @@ AC_CONFIG_FILES([
- man/Makefile
- ])
- AC_OUTPUT
-+
-+echo "
-+Build configuration:
-+
-+ Prefix: ${prefix}
-+ Source code location: ${srcdir}
-+ Compiler: ${CC}
-+ Compiler Warnings: $enable_compile_warnings
-+
-+ Support for NetworkManager: $have_networkmanager
-+ Support for GStreamer recording: $build_recorder
-+"
-diff --git a/js/Makefile.am b/js/Makefile.am
-index a3e4917..4b00193 100644
---- a/js/Makefile.am
-+++ b/js/Makefile.am
-@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
- sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
- -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
- -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
-+ -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
- -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
- -e "s|[@]datadir@|$(datadir)|g" \
- -e "s|[@]libexecdir@|$(libexecdir)|g" \
-diff --git a/js/misc/config.js.in b/js/misc/config.js.in
-index 9769104..9c4795d 100644
---- a/js/misc/config.js.in
-+++ b/js/misc/config.js.in
-@@ -6,6 +6,8 @@ const PACKAGE_NAME = '@PACKAGE_NAME@';
- const PACKAGE_VERSION = '@PACKAGE_VERSION@';
- /* 1 if gnome-bluetooth is available, 0 otherwise */
- const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
-+/* 1 if networkmanager is available, 0 otherwise */
-+const HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
- /* gettext package */
- const GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
- /* locale dir */
-diff --git a/js/ui/panel.js b/js/ui/panel.js
-index bcbaafb..40c6ff9 100644
---- a/js/ui/panel.js
-+++ b/js/ui/panel.js
-@@ -910,11 +910,13 @@ if (Config.HAVE_BLUETOOTH)
- PANEL_ITEM_IMPLEMENTATIONS['bluetooth'] =
- imports.ui.status.bluetooth.Indicator;
-
--try {
-- PANEL_ITEM_IMPLEMENTATIONS['network'] =
-- imports.ui.status.network.NMApplet;
--} catch(e) {
-- log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+if (Config.HAVE_NETWORKMANAGER) {
-+ try {
-+ PANEL_ITEM_IMPLEMENTATIONS['network'] =
-+ imports.ui.status.network.NMApplet;
-+ } catch(e) {
-+ log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+ }
- }
-
- const Panel = new Lang.Class({
-diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
-index 808109a..7ee6b1e 100644
---- a/js/ui/sessionMode.js
-+++ b/js/ui/sessionMode.js
-@@ -6,6 +6,8 @@ const Signals = imports.signals;
- const Main = imports.ui.main;
- const Params = imports.misc.params;
-
-+const Config = imports.misc.config;
-+
- const DEFAULT_MODE = 'restrictive';
-
- const _modes = {
-@@ -91,7 +93,10 @@ const _modes = {
- isLocked: false,
- isPrimary: true,
- unlockDialog: imports.ui.unlockDialog.UnlockDialog,
-- components: ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ components: Config.HAVE_NETWORKMANAGER ?
-+ ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ 'keyring', 'recorder', 'autorunManager', 'automountManager'] :
-+ ['polkitAgent', 'telepathyClient',
- 'keyring', 'recorder', 'autorunManager', 'automountManager'],
- panel: {
- left: ['activities', 'appMenu'],
-diff --git a/src/Makefile.am b/src/Makefile.am
-index a390691..552b640 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -115,9 +115,7 @@ shell_public_headers_h = \
- shell-global.h \
- shell-idle-monitor.h \
- shell-invert-lightness-effect.h \
-- shell-mobile-providers.h \
- shell-mount-operation.h \
-- shell-network-agent.h \
- shell-perf-log.h \
- shell-screenshot.h \
- shell-screen-grabber.h \
-@@ -131,6 +129,10 @@ shell_public_headers_h = \
- shell-wm.h \
- shell-xfixes-cursor.h
-
-+if HAVE_NETWORKMANAGER
-+shell_public_headers_h += shell-mobile-providers.h shell-network-agent.h
-+endif
-+
- shell_private_sources = \
- gactionmuxer.h \
- gactionmuxer.c \
-@@ -162,9 +164,7 @@ libgnome_shell_la_SOURCES = \
- shell-invert-lightness-effect.c \
- shell-keyring-prompt.h \
- shell-keyring-prompt.c \
-- shell-mobile-providers.c \
- shell-mount-operation.c \
-- shell-network-agent.c \
- shell-perf-log.c \
- shell-polkit-authentication-agent.h \
- shell-polkit-authentication-agent.c \
-@@ -183,6 +183,10 @@ libgnome_shell_la_SOURCES = \
- shell-xfixes-cursor.c \
- $(NULL)
-
-+if HAVE_NETWORKMANAGER
-+libgnome_shell_la_SOURCES += shell-mobile-providers.c shell-network-agent.c
-+endif
-+
- libgnome_shell_la_gir_sources = \
- $(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
-
-@@ -296,7 +300,10 @@ libgnome_shell_la_LIBADD = \
- libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
-
- Shell-0.1.gir: libgnome-shell.la St-1.0.gir
--Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 TelepathyLogger-0.2 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0
-+Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 TelepathyLogger-0.2 Soup-2.4 GMenu-3.0
-+if HAVE_NETWORKMANAGER
-+Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
-+endif
- Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
- Shell_0_1_gir_LIBS = libgnome-shell.la
- Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
---
-1.7.12
-
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.7.90-bluetooth-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.7.90-bluetooth-flag.patch
deleted file mode 100755
index 5e0fd1722be5..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.7.90-bluetooth-flag.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 0556d99379265b5ccd256bc6befcd1486fe4e464 Mon Sep 17 00:00:00 2001
-From: Sobhan Mohammadpour <sobhanmohammadpour1@yahoo.fr>
-Date: Thu, 28 Feb 2013 18:48:32 +0330
-Subject: [PATCH] gnome-shell-3.7.90--bluetooth-flag
-
-https://bugs.gentoo.org/show_bug.cgi?id=398145
-
-Ed Catmur 2012-01-08 13:46:22 UTC
-libgnome-bluetooth-applet is a private library so they shouldn't be linking
-against it anyway. I tried to work out how to tell libtool to add it to rpath
-but got totally lost.
-
-I'll see if I can work out how to fix the automagic gnome-bluetooth dependency
-so I can at least merge USE=-bluetooth.
-
----
- configure.ac | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index d9d1001..02f1e65 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -111,6 +111,8 @@ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.7.4)
- PKG_CHECK_MODULES(CARIBOU, caribou-1.0 >= 0.4.8)
-
- AC_MSG_CHECKING([for bluetooth support])
-+AC_ARG_WITH([bluetooth], AS_HELP_STRING([--without-bluetooth], [Build without gnome-bluetooth library (default: auto)]))
-+AS_IF([test "x$with_bluetooth" != "xno"], [
- PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
- [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
- BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
-@@ -123,6 +125,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
- [AC_DEFINE([HAVE_BLUETOOTH],[0])
- AC_SUBST([HAVE_BLUETOOTH],[0])
- AC_MSG_RESULT([no])])
-+], [AC_DEFINE([HAVE_BLUETOOTH],[0])
-+ AC_SUBST([HAVE_BLUETOOTH],[0])
-+ AC_MSG_RESULT([no])])
-
- PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0)
- AC_SUBST(CALENDAR_SERVER_CFLAGS)
---
-1.8.1.2
-
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.0-networkmanager-flag-r1.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.0-networkmanager-flag-r1.patch
deleted file mode 100644
index f88657d3d56c..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.0-networkmanager-flag-r1.patch
+++ /dev/null
@@ -1,200 +0,0 @@
- * use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
- * take care to not import ui.status.network if nm is disabled;
- * do not try to reassign to const variables;
- * no point really in fiddling with the list of installed js files;
- * don't build shell-mobile-providers if nm is disabled;
- * use "networkmanager" instead of "network_manager" because THE
- BIKESHED SHOULD BE BLUE, also because the upstream package name is
- NetworkManager, not Network_Manager.
---- a/configure.ac 2013-03-27 17:28:24.000000000 +0100
-+++ b/configure.ac 2013-04-02 18:47:05.569818375 +0200
-@@ -94,8 +94,6 @@
- libcanberra libcanberra-gtk3
- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
-- libnm-glib libnm-util >= $NETWORKMANAGER_MIN_VERSION
-- libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
- libsecret-unstable gcr-3 >= $GCR_MIN_VERSION)
-
- PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
-@@ -154,6 +157,38 @@
- [Define if _NL_TIME_FIRST_WEEKDAY is available])
- fi
-
-+AC_ARG_ENABLE(networkmanager,
-+ AS_HELP_STRING([--disable-networkmanager],
-+ [disable NetworkManager support @<:@default=auto@:>@]),,
-+ [enable_networkmanager=auto])
-+
-+if test "x$enable_networkmanager" != "xno"; then
-+ PKG_CHECK_MODULES(NETWORKMANAGER,
-+ [libnm-glib
-+ libnm-util >= $NETWORKMANAGER_MIN_VERSION
-+ libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
-+ gnome-keyring-1],
-+ [have_networkmanager=yes],
-+ [have_networkmanager=no])
-+
-+ GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
-+ GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
-+else
-+ have_networkmanager="no (disabled)"
-+fi
-+
-+if test "x$have_networkmanager" = "xyes"; then
-+ AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
-+ AC_SUBST([HAVE_NETWORKMANAGER], [1])
-+else
-+ if test "x$enable_networkmanager" = "xyes"; then
-+ AC_MSG_ERROR([Couldn't find NetworkManager.])
-+ fi
-+ AC_SUBST([HAVE_NETWORKMANAGER], [0])
-+fi
-+
-+AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
-+
- # Sets GLIB_GENMARSHAL and GLIB_MKENUMS
- AM_PATH_GLIB_2_0()
-
-@@ -199,3 +234,15 @@
- man/Makefile
- ])
- AC_OUTPUT
-+
-+echo "
-+Build configuration:
-+
-+ Prefix: ${prefix}
-+ Source code location: ${srcdir}
-+ Compiler: ${CC}
-+ Compiler Warnings: $enable_compile_warnings
-+
-+ Support for NetworkManager: $have_networkmanager
-+ Support for GStreamer recording: $build_recorder
-+"
-diff --git a/js/Makefile.am b/js/Makefile.am
-index 323cd1b..d17111a 100644
---- a/js/Makefile.am
-+++ b/js/Makefile.am
-@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
- sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
- -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
- -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
-+ -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
- -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
- -e "s|[@]datadir@|$(datadir)|g" \
- -e "s|[@]libexecdir@|$(libexecdir)|g" \
-diff --git a/js/misc/config.js.in b/js/misc/config.js.in
-index 9769104..9c4795d 100644
---- a/js/misc/config.js.in
-+++ b/js/misc/config.js.in
-@@ -6,6 +6,8 @@ const PACKAGE_NAME = '@PACKAGE_NAME@';
- const PACKAGE_VERSION = '@PACKAGE_VERSION@';
- /* 1 if gnome-bluetooth is available, 0 otherwise */
- const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
-+/* 1 if networkmanager is available, 0 otherwise */
-+const HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
- /* gettext package */
- const GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
- /* locale dir */
-diff --git a/js/ui/panel.js b/js/ui/panel.js
-index cfeb351..3bb13b4 100644
---- a/js/ui/panel.js
-+++ b/js/ui/panel.js
-@@ -933,11 +933,13 @@ if (Config.HAVE_BLUETOOTH)
- PANEL_ITEM_IMPLEMENTATIONS['bluetooth'] =
- imports.ui.status.bluetooth.Indicator;
-
--try {
-- PANEL_ITEM_IMPLEMENTATIONS['network'] =
-- imports.ui.status.network.NMApplet;
--} catch(e) {
-- log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+if (Config.HAVE_NETWORKMANAGER) {
-+ try {
-+ PANEL_ITEM_IMPLEMENTATIONS['network'] =
-+ imports.ui.status.network.NMApplet;
-+ } catch(e) {
-+ log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+ }
- }
-
- const Panel = new Lang.Class({
-diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
-index f802dbd..eec830b 100644
---- a/js/ui/sessionMode.js
-+++ b/js/ui/sessionMode.js
-@@ -10,6 +10,8 @@ const FileUtils = imports.misc.fileUtils;
- const Main = imports.ui.main;
- const Params = imports.misc.params;
-
-+const Config = imports.misc.config;
-+
- const DEFAULT_MODE = 'restrictive';
-
- const _modes = {
-@@ -100,7 +102,10 @@ const _modes = {
- isLocked: false,
- isPrimary: true,
- unlockDialog: imports.ui.unlockDialog.UnlockDialog,
-- components: ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ components: Config.HAVE_NETWORKMANAGER ?
-+ ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ 'keyring', 'recorder', 'autorunManager', 'automountManager'] :
-+ ['polkitAgent', 'telepathyClient',
- 'keyring', 'recorder', 'autorunManager', 'automountManager'],
- panel: {
- left: ['activities', 'appMenu'],
-
---- a/src/Makefile.am.old 2013-03-27 10:35:51.763616888 +0100
-+++ b/src/Makefile.am 2013-03-27 10:38:09.745425152 +0100
-@@ -116,7 +116,6 @@
- shell-invert-lightness-effect.h \
- shell-keybinding-modes.h \
- shell-mount-operation.h \
-- shell-network-agent.h \
- shell-perf-log.h \
- shell-screenshot.h \
- shell-slicer.h \
-@@ -129,6 +128,10 @@
- shell-wm.h \
- shell-xfixes-cursor.h
-
-+if HAVE_NETWORKMANAGER
-+shell_public_headers_h += shell-network-agent.h
-+endif
-+
- shell_private_sources = \
- gactionmuxer.h \
- gactionmuxer.c \
-@@ -159,7 +162,6 @@
- shell-keyring-prompt.h \
- shell-keyring-prompt.c \
- shell-mount-operation.c \
-- shell-network-agent.c \
- shell-perf-log.c \
- shell-polkit-authentication-agent.h \
- shell-polkit-authentication-agent.c \
-@@ -177,6 +179,10 @@
- shell-xfixes-cursor.c \
- $(NULL)
-
-+if HAVE_NETWORKMANAGER
-+libgnome_shell_la_SOURCES += shell-network-agent.c
-+endif
-+
- libgnome_shell_la_gir_sources = \
- $(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
-
-@@ -287,7 +293,10 @@
- libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
-
- Shell-0.1.gir: libgnome-shell.la St-1.0.gir
--Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0
-+Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 GMenu-3.0
-+if HAVE_NETWORKMANAGER
-+Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
-+endif
- Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
- Shell_0_1_gir_LIBS = libgnome-shell.la
- Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.3-networkmanager-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.3-networkmanager-flag.patch
deleted file mode 100644
index 54c6d9746533..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.3-networkmanager-flag.patch
+++ /dev/null
@@ -1,200 +0,0 @@
- * use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
- * take care to not import ui.status.network if nm is disabled;
- * do not try to reassign to const variables;
- * no point really in fiddling with the list of installed js files;
- * don't build shell-mobile-providers if nm is disabled;
- * use "networkmanager" instead of "network_manager" because THE
- BIKESHED SHOULD BE BLUE, also because the upstream package name is
- NetworkManager, not Network_Manager.
---- a/configure.ac 2013-03-27 17:28:24.000000000 +0100
-+++ b/configure.ac 2013-04-02 18:47:05.569818375 +0200
-@@ -94,8 +94,6 @@
- libcanberra libcanberra-gtk3
- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
-- libnm-glib libnm-util >= $NETWORKMANAGER_MIN_VERSION
-- libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
- libsecret-unstable gcr-base-3 >= $GCR_MIN_VERSION)
-
- PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
-@@ -154,6 +157,38 @@
- [Define if _NL_TIME_FIRST_WEEKDAY is available])
- fi
-
-+AC_ARG_ENABLE(networkmanager,
-+ AS_HELP_STRING([--disable-networkmanager],
-+ [disable NetworkManager support @<:@default=auto@:>@]),,
-+ [enable_networkmanager=auto])
-+
-+if test "x$enable_networkmanager" != "xno"; then
-+ PKG_CHECK_MODULES(NETWORKMANAGER,
-+ [libnm-glib
-+ libnm-util >= $NETWORKMANAGER_MIN_VERSION
-+ libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
-+ gnome-keyring-1],
-+ [have_networkmanager=yes],
-+ [have_networkmanager=no])
-+
-+ GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
-+ GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
-+else
-+ have_networkmanager="no (disabled)"
-+fi
-+
-+if test "x$have_networkmanager" = "xyes"; then
-+ AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
-+ AC_SUBST([HAVE_NETWORKMANAGER], [1])
-+else
-+ if test "x$enable_networkmanager" = "xyes"; then
-+ AC_MSG_ERROR([Couldn't find NetworkManager.])
-+ fi
-+ AC_SUBST([HAVE_NETWORKMANAGER], [0])
-+fi
-+
-+AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
-+
- # Sets GLIB_GENMARSHAL and GLIB_MKENUMS
- AM_PATH_GLIB_2_0()
-
-@@ -199,3 +234,15 @@
- man/Makefile
- ])
- AC_OUTPUT
-+
-+echo "
-+Build configuration:
-+
-+ Prefix: ${prefix}
-+ Source code location: ${srcdir}
-+ Compiler: ${CC}
-+ Compiler Warnings: $enable_compile_warnings
-+
-+ Support for NetworkManager: $have_networkmanager
-+ Support for GStreamer recording: $build_recorder
-+"
-diff --git a/js/Makefile.am b/js/Makefile.am
-index 323cd1b..d17111a 100644
---- a/js/Makefile.am
-+++ b/js/Makefile.am
-@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
- sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
- -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
- -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
-+ -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
- -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
- -e "s|[@]datadir@|$(datadir)|g" \
- -e "s|[@]libexecdir@|$(libexecdir)|g" \
-diff --git a/js/misc/config.js.in b/js/misc/config.js.in
-index 9769104..9c4795d 100644
---- a/js/misc/config.js.in
-+++ b/js/misc/config.js.in
-@@ -6,6 +6,8 @@ const PACKAGE_NAME = '@PACKAGE_NAME@';
- const PACKAGE_VERSION = '@PACKAGE_VERSION@';
- /* 1 if gnome-bluetooth is available, 0 otherwise */
- const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
-+/* 1 if networkmanager is available, 0 otherwise */
-+const HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
- /* gettext package */
- const GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
- /* locale dir */
-diff --git a/js/ui/panel.js b/js/ui/panel.js
-index cfeb351..3bb13b4 100644
---- a/js/ui/panel.js
-+++ b/js/ui/panel.js
-@@ -933,11 +933,13 @@ if (Config.HAVE_BLUETOOTH)
- PANEL_ITEM_IMPLEMENTATIONS['bluetooth'] =
- imports.ui.status.bluetooth.Indicator;
-
--try {
-- PANEL_ITEM_IMPLEMENTATIONS['network'] =
-- imports.ui.status.network.NMApplet;
--} catch(e) {
-- log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+if (Config.HAVE_NETWORKMANAGER) {
-+ try {
-+ PANEL_ITEM_IMPLEMENTATIONS['network'] =
-+ imports.ui.status.network.NMApplet;
-+ } catch(e) {
-+ log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
-+ }
- }
-
- const Panel = new Lang.Class({
-diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
-index f802dbd..eec830b 100644
---- a/js/ui/sessionMode.js
-+++ b/js/ui/sessionMode.js
-@@ -10,6 +10,8 @@ const FileUtils = imports.misc.fileUtils;
- const Main = imports.ui.main;
- const Params = imports.misc.params;
-
-+const Config = imports.misc.config;
-+
- const DEFAULT_MODE = 'restrictive';
-
- const _modes = {
-@@ -100,7 +102,10 @@ const _modes = {
- isLocked: false,
- isPrimary: true,
- unlockDialog: imports.ui.unlockDialog.UnlockDialog,
-- components: ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ components: Config.HAVE_NETWORKMANAGER ?
-+ ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ 'keyring', 'recorder', 'autorunManager', 'automountManager'] :
-+ ['polkitAgent', 'telepathyClient',
- 'keyring', 'recorder', 'autorunManager', 'automountManager'],
- panel: {
- left: ['activities', 'appMenu'],
-
---- a/src/Makefile.am.old 2013-03-27 10:35:51.763616888 +0100
-+++ b/src/Makefile.am 2013-03-27 10:38:09.745425152 +0100
-@@ -116,7 +116,6 @@
- shell-invert-lightness-effect.h \
- shell-keybinding-modes.h \
- shell-mount-operation.h \
-- shell-network-agent.h \
- shell-perf-log.h \
- shell-screenshot.h \
- shell-slicer.h \
-@@ -129,6 +128,10 @@
- shell-wm.h \
- shell-xfixes-cursor.h
-
-+if HAVE_NETWORKMANAGER
-+shell_public_headers_h += shell-network-agent.h
-+endif
-+
- shell_private_sources = \
- gactionmuxer.h \
- gactionmuxer.c \
-@@ -159,7 +162,6 @@
- shell-keyring-prompt.h \
- shell-keyring-prompt.c \
- shell-mount-operation.c \
-- shell-network-agent.c \
- shell-perf-log.c \
- shell-polkit-authentication-agent.h \
- shell-polkit-authentication-agent.c \
-@@ -177,6 +179,10 @@
- shell-xfixes-cursor.c \
- $(NULL)
-
-+if HAVE_NETWORKMANAGER
-+libgnome_shell_la_SOURCES += shell-network-agent.c
-+endif
-+
- libgnome_shell_la_gir_sources = \
- $(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
-
-@@ -287,7 +293,10 @@
- libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
-
- Shell-0.1.gir: libgnome-shell.la St-1.0.gir
--Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0
-+Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 GMenu-3.0
-+if HAVE_NETWORKMANAGER
-+Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
-+endif
- Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
- Shell_0_1_gir_LIBS = libgnome-shell.la
- Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.3-relock-screen.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.3-relock-screen.patch
deleted file mode 100644
index c816b71238b8..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.3-relock-screen.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-From ccfa3d3be15b3a52bfcc37feee3abb2f2d4f66cb Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 17 Jan 2013 19:39:54 +0000
-Subject: Re-lock the screen if we're restarted from a previously crashed shell
-
-This way we "fail closed", which is better for security.
-
-See https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/1064584
-
-https://bugzilla.gnome.org/show_bug.cgi?id=691987
----
-diff --git a/js/ui/main.js b/js/ui/main.js
-index 2657678..2dc421b 100644
---- a/js/ui/main.js
-+++ b/js/ui/main.js
-@@ -195,6 +195,9 @@ function _initializeUI() {
- if (keybindingMode == Shell.KeyBindingMode.NONE) {
- keybindingMode = Shell.KeyBindingMode.NORMAL;
- }
-+ if (screenShield) {
-+ screenShield.lockIfWasLocked();
-+ }
- });
- }
-
-diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
-index 48cfaa6..185f109 100644
---- a/js/ui/screenShield.js
-+++ b/js/ui/screenShield.js
-@@ -30,6 +30,7 @@ const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
- const LOCK_ENABLED_KEY = 'lock-enabled';
- const LOCK_DELAY_KEY = 'lock-delay';
-
-+const LOCKED_STATE_STR = 'screenShield.locked';
- // fraction of screen height the arrow must reach before completing
- // the slide up automatically
- const ARROW_DRAG_THRESHOLD = 0.1;
-@@ -1175,6 +1176,7 @@ const ScreenShield = new Lang.Class({
- this._isLocked = false;
- this.emit('active-changed');
- this.emit('locked-changed');
-+ global.set_runtime_state(LOCKED_STATE_STR, null);
- },
-
- activate: function(animate) {
-@@ -1191,6 +1193,7 @@ const ScreenShield = new Lang.Class({
- }
-
- this._resetLockScreen(animate, animate);
-+ global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
-
- // We used to set isActive and emit active-changed here,
- // but now we do that from lockScreenShown, which means
-@@ -1217,5 +1220,15 @@ const ScreenShield = new Lang.Class({
-
- this.emit('locked-changed');
- },
-+
-+ // If the previous shell crashed, and gnome-session restarted us, then re-lock
-+ lockIfWasLocked: function() {
-+ let wasLocked = global.get_runtime_state('b', LOCKED_STATE_STR);
-+ if (wasLocked === null)
-+ return;
-+ Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
-+ this.lock(false);
-+ }));
-+ }
- });
- Signals.addSignalMethods(ScreenShield.prototype);
-diff --git a/src/shell-global.c b/src/shell-global.c
-index 9a594b7..2f96048 100644
---- a/src/shell-global.c
-+++ b/src/shell-global.c
-@@ -82,6 +82,8 @@ struct _ShellGlobal {
- const char *userdatadir;
- StFocusManager *focus_manager;
-
-+ GFile *runtime_state_path;
-+
- guint work_count;
- GSList *leisure_closures;
- guint leisure_function_id;
-@@ -232,6 +234,8 @@ shell_global_init (ShellGlobal *global)
- const char *datadir = g_getenv ("GNOME_SHELL_DATADIR");
- const char *shell_js = g_getenv("GNOME_SHELL_JS");
- char *imagedir, **search_path;
-+ char *path;
-+ const char *byteorder_string;
-
- if (!datadir)
- datadir = GNOME_SHELL_DATADIR;
-@@ -254,6 +258,20 @@ shell_global_init (ShellGlobal *global)
- global->userdatadir = g_build_filename (g_get_user_data_dir (), "gnome-shell", NULL);
- g_mkdir_with_parents (global->userdatadir, 0700);
-
-+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-+ byteorder_string = "LE";
-+#else
-+ byteorder_string = "BE";
-+#endif
-+
-+ /* And the runtime state */
-+ path = g_strdup_printf ("%s/gnome-shell/runtime-state-%s.%s",
-+ g_get_user_runtime_dir (),
-+ byteorder_string,
-+ XDisplayName (NULL));
-+ (void) g_mkdir_with_parents (path, 0700);
-+ global->runtime_state_path = g_file_new_for_path (path);
-+
- global->settings = g_settings_new ("org.gnome.shell");
-
- global->grab_notifier = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL));
-@@ -295,6 +313,8 @@ shell_global_finalize (GObject *object)
-
- the_object = NULL;
-
-+ g_clear_object (&global->runtime_state_path);
-+
- G_OBJECT_CLASS(shell_global_parent_class)->finalize (object);
- }
-
-@@ -1764,3 +1784,83 @@ shell_global_get_session_mode (ShellGlobal *global)
-
- return global->session_mode;
- }
-+
-+static GFile *
-+get_runtime_state_path (ShellGlobal *global,
-+ const char *property_name)
-+{
-+ return g_file_get_child (global->runtime_state_path, property_name);
-+}
-+
-+/**
-+ * shell_global_set_runtime_state:
-+ * @global: a #ShellGlobal
-+ * @property_name: Name of the property
-+ * @variant: (allow-none): A #GVariant, or %NULL to unset
-+ *
-+ * Change the value of serialized runtime state.
-+ */
-+void
-+shell_global_set_runtime_state (ShellGlobal *global,
-+ const char *property_name,
-+ GVariant *variant)
-+{
-+ GFile *path;
-+
-+ path = get_runtime_state_path (global, property_name);
-+
-+ if (variant == NULL)
-+ (void) g_file_delete (path, NULL, NULL);
-+ else
-+ {
-+ gsize size = g_variant_get_size (variant);
-+ g_file_replace_contents (path, g_variant_get_data (variant), size,
-+ NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION,
-+ NULL, NULL, NULL);
-+ }
-+}
-+
-+/**
-+ * shell_global_get_runtime_state:
-+ * @global: a #ShellGlobal
-+ * @property_type: Expected data type
-+ * @property_name: Name of the property
-+ *
-+ * The shell maintains "runtime" state which does not persist across
-+ * logout or reboot.
-+ *
-+ * Returns: The value of a serialized property, or %NULL if none stored
-+ */
-+GVariant *
-+shell_global_get_runtime_state (ShellGlobal *global,
-+ const char *property_type,
-+ const char *property_name)
-+{
-+ GVariant *res = NULL;
-+ GMappedFile *mfile;
-+ GFile *path;
-+ char *pathstr;
-+ GError *local_error = NULL;
-+
-+ path = get_runtime_state_path (global, property_name);
-+ pathstr = g_file_get_path (path);
-+ mfile = g_mapped_file_new (pathstr, FALSE, &local_error);
-+ if (!mfile)
-+ {
-+ if (!g_error_matches (local_error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
-+ {
-+ g_warning ("Failed to open runtime state: %s", local_error->message);
-+ }
-+ g_clear_error (&local_error);
-+ }
-+ else
-+ {
-+ GBytes *bytes = g_mapped_file_get_bytes (mfile);
-+ res = g_variant_new_from_bytes ((GVariantType*)property_type, bytes, TRUE);
-+ g_bytes_unref (bytes);
-+ g_mapped_file_unref (mfile);
-+ }
-+
-+ out:
-+ return res;
-+}
-diff --git a/src/shell-global.h b/src/shell-global.h
-index 69dff85..38532b5 100644
---- a/src/shell-global.h
-+++ b/src/shell-global.h
-@@ -149,6 +149,14 @@ void shell_global_reexec_self (ShellGlobal *global);
-
- const char * shell_global_get_session_mode (ShellGlobal *global);
-
-+void shell_global_set_runtime_state (ShellGlobal *global,
-+ const char *property_name,
-+ GVariant *variant);
-+GVariant * shell_global_get_runtime_state (ShellGlobal *global,
-+ const char *property_type,
-+ const char *property_name);
-+
-+
- G_END_DECLS
-
- #endif /* __SHELL_GLOBAL_H__ */
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch
deleted file mode 100644
index 861e7300ef1e..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-allocate-scrollbars.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 52417a8363cdb5b57af744cd4ca311c7f068403e Mon Sep 17 00:00:00 2001
-From: Adel Gadllah <adel.gadllah@gmail.com>
-Date: Sat, 10 Aug 2013 20:09:33 +0000
-Subject: st-scroll-view: Unconditionally allocate scrollbars
-
-Commit cfecd063c9ca3d18cd changed the allocation logic to not allocate
-scrollbars when the *_visible booleans are false. This breaks the
-fade effect as well as the NEVER policy. We do not paint scrollbars
-when they are not supposed to be visible, so not allocating them
-and thus leaving them in a "needs allocation" state just causes problems.
-
-I am not convinced that it solved any problem to begin with (we don't paint
-them anyway).
-
-As the previous condition has basically always been true, just do it
-unconditionally.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=705664
----
-diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c
-index 04e263f..f59ae93 100644
---- a/src/st/st-scroll-view.c
-+++ b/src/st/st-scroll-view.c
-@@ -598,42 +598,36 @@ st_scroll_view_allocate (ClutterActor *actor,
- */
-
- /* Vertical scrollbar */
-- if (vscrollbar_visible)
-- {
-- if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
-- {
-- child_box.x1 = content_box.x1;
-- child_box.x2 = content_box.x1 + sb_width;
-- }
-- else
-- {
-- child_box.x1 = content_box.x2 - sb_width;
-- child_box.x2 = content_box.x2;
-- }
-- child_box.y1 = content_box.y1;
-- child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0);
-+ if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
-+ {
-+ child_box.x1 = content_box.x1;
-+ child_box.x2 = content_box.x1 + sb_width;
-+ }
-+ else
-+ {
-+ child_box.x1 = content_box.x2 - sb_width;
-+ child_box.x2 = content_box.x2;
-+ }
-+ child_box.y1 = content_box.y1;
-+ child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0);
-
-- clutter_actor_allocate (priv->vscroll, &child_box, flags);
-- }
-+ clutter_actor_allocate (priv->vscroll, &child_box, flags);
-
- /* Horizontal scrollbar */
-- if (hscrollbar_visible)
-- {
-- if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
-- {
-- child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0);
-- child_box.x2 = content_box.x2;
-- }
-- else
-- {
-- child_box.x1 = content_box.x1;
-- child_box.x2 = content_box.x2 - (vscrollbar_visible ? sb_width : 0);
-- }
-- child_box.y1 = content_box.y2 - sb_height;
-- child_box.y2 = content_box.y2;
-+ if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
-+ {
-+ child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0);
-+ child_box.x2 = content_box.x2;
-+ }
-+ else
-+ {
-+ child_box.x1 = content_box.x1;
-+ child_box.x2 = content_box.x2 - (vscrollbar_visible ? sb_width : 0);
-+ }
-+ child_box.y1 = content_box.y2 - sb_height;
-+ child_box.y2 = content_box.y2;
-
-- clutter_actor_allocate (priv->hscroll, &child_box, flags);
-- }
-+ clutter_actor_allocate (priv->hscroll, &child_box, flags);
-
- /* In case the scrollbar policy is NEVER or scrollbars should be
- * overlayed, we don't trim the content box allocation by the
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-close-rundialog.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-close-rundialog.patch
deleted file mode 100644
index 3f509ef65531..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-close-rundialog.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From efdf1ff755943fba1f8a9aaeff77daa3ed338088 Mon Sep 17 00:00:00 2001
-From: Florian Müllner <fmuellner@gnome.org>
-Date: Wed, 18 Sep 2013 17:47:59 +0000
-Subject: main: Close runDialog as necessary on session mode changes
-
-We already do this for looking glass, but it makes even less sense
-for the normal run dialog - if a mode sets runDialog to false, the
-intention is to not allow executing aribitrary commands.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=708218
----
-diff --git a/js/ui/main.js b/js/ui/main.js
-index bca2b22..6f961be 100644
---- a/js/ui/main.js
-+++ b/js/ui/main.js
-@@ -90,8 +90,12 @@ function _sessionUpdated() {
- Shell.KeyBindingMode.OVERVIEW,
- sessionMode.hasRunDialog ? openRunDialog : null);
-
-- if (!sessionMode.hasRunDialog && lookingGlass)
-- lookingGlass.close();
-+ if (!sessionMode.hasRunDialog) {
-+ if (runDialog)
-+ runDialog.close();
-+ if (lookingGlass)
-+ lookingGlass.close();
-+ }
- }
-
- function start() {
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch
deleted file mode 100644
index 0e0fc5bbcaf8..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-events-lock.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d8177a8f3ba6cc6e80d27a7c6bdd1b5920e12544 Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna@src.gnome.org>
-Date: Mon, 12 Aug 2013 13:14:37 +0000
-Subject: ScreenShield: don't allow events through the lock dialog
-
-Make the lock dialog group reactive, to intercept any events
-before they go to the actors below.
-In the future, we may restructure our chrome to have a clear
-layer system, but for now it fixes a security issue in the lock
-screen (you can see the contents of the windows by dragging
-if the screen was locked with the overview active)
-
-https://bugzilla.gnome.org/show_bug.cgi?id=705840
----
-diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
-index 4264f01..8452bc6 100644
---- a/js/ui/screenShield.js
-+++ b/js/ui/screenShield.js
-@@ -478,6 +478,7 @@ const ScreenShield = new Lang.Class({
-
- this._lockDialogGroup = new St.Widget({ x_expand: true,
- y_expand: true,
-+ reactive: true,
- opacity: 0,
- pivot_point: new Clutter.Point({ x: 0.5, y: 0.5 }),
- name: 'lockDialogGroup' });
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch
deleted file mode 100644
index 2c9b802fe736..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-nodisplay.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 58872d162bd610578e048bf2832defc93a284a75 Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna@src.gnome.org>
-Date: Sun, 31 Mar 2013 18:05:49 +0000
-Subject: AppDisplay/FrequentView: filter out hidden applications
-
-Filter out all applications which have the NoDisplay, Hidden or
-Not/OnlyShowIn bits, as those are not meant to be launched directly.
-This also allows the user to filter apps from the frequent view
-using alacarte.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=696949
----
-diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
-index 22ae481..bcfb57a 100644
---- a/js/ui/appDisplay.js
-+++ b/js/ui/appDisplay.js
-@@ -316,6 +316,8 @@ const FrequentView = new Lang.Class({
- loadApps: function() {
- let mostUsed = this._usage.get_most_used ("");
- for (let i = 0; i < mostUsed.length; i++) {
-+ if (!mostUsed[i].get_app_info().should_show())
-+ continue;
- let appIcon = new AppIcon(mostUsed[i]);
- this._grid.addItem(appIcon.actor, -1);
- }
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch
deleted file mode 100644
index 7a01178a9e5e..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-reset-opacity.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From a6f39a12d7fef85c8ce40bc3898b17adf31bc2ba Mon Sep 17 00:00:00 2001
-From: Adel Gadllah <adel.gadllah@gmail.com>
-Date: Sun, 04 Aug 2013 09:35:35 +0000
-Subject: overview: Reset opacity when not animating
-
-We are not resetting the opacity when we are not animating, which can cause
-a hidden window to end up with opacity 0 if we remove the tween to early.
----
-diff --git a/js/ui/workspace.js b/js/ui/workspace.js
-index e2e461d..2c8ff22 100644
---- a/js/ui/workspace.js
-+++ b/js/ui/workspace.js
-@@ -1094,6 +1094,7 @@ const Workspace = new Lang.Class({
- Tweener.removeTweens(clone.actor);
- clone.actor.set_position(x, y);
- clone.actor.set_scale(scale, scale);
-+ clone.actor.set_opacity(255);
- clone.overlay.relayout(false);
- this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
- }
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch b/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch
deleted file mode 100644
index bd34b16f121d..000000000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.8.4-revert-async.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 0a1b9867fcf5065a72e782e05fea858883bf2cdc Mon Sep 17 00:00:00 2001
-From: Adel Gadllah <adel.gadllah@gmail.com>
-Date: Thu, 15 Aug 2013 19:51:46 +0000
-Subject: Revert "background: fix asynchronous management of background loading operations"
-
-This reverts commit 1020d8a0f8523a04d8336b1348388b8b242e414f.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=704646
----
-diff --git a/js/ui/background.js b/js/ui/background.js
-index 13343c6..1d9ab7c 100644
---- a/js/ui/background.js
-+++ b/js/ui/background.js
-@@ -142,40 +142,33 @@ const BackgroundCache = new Lang.Class({
- cancellable: null,
- onFinished: null });
-
-- let fileLoad = { filename: params.filename,
-- style: params.style,
-- shouldCopy: false,
-- monitorIndex: params.monitorIndex,
-- effects: params.effects,
-- onFinished: params.onFinished,
-- cancellable: new Gio.Cancellable(), };
-- this._pendingFileLoads.push(fileLoad);
--
-- if (params.cancellable) {
-- params.cancellable.connect(Lang.bind(this, function(c) {
-- fileLoad.cancellable.cancel();
-- }));
-+ for (let i = 0; i < this._pendingFileLoads.length; i++) {
-+ if (this._pendingFileLoads[i].filename == params.filename &&
-+ this._pendingFileLoads[i].style == params.style) {
-+ this._pendingFileLoads[i].callers.push({ shouldCopy: true,
-+ monitorIndex: params.monitorIndex,
-+ effects: params.effects,
-+ onFinished: params.onFinished });
-+ return;
-+ }
- }
-
-+ this._pendingFileLoads.push({ filename: params.filename,
-+ style: params.style,
-+ callers: [{ shouldCopy: false,
-+ monitorIndex: params.monitorIndex,
-+ effects: params.effects,
-+ onFinished: params.onFinished }] });
-+
- let content = new Meta.Background({ meta_screen: global.screen,
- monitor: params.monitorIndex,
- effects: params.effects });
-
- content.load_file_async(params.filename,
- params.style,
-- fileLoad.cancellable,
-+ params.cancellable,
- Lang.bind(this,
- function(object, result) {
-- if (fileLoad.cancellable.is_cancelled()) {
-- if (params.cancellable && params.cancellable.is_cancelled()) {
-- if (params.onFinished)
-- params.onFinished(null);
-- this._removePendingFileLoad(fileLoad);
-- return;
-- }
-- return;
-- }
--
- try {
- content.load_file_finish(result);
-
-@@ -185,25 +178,22 @@ const BackgroundCache = new Lang.Class({
- content = null;
- }
-
-- let needsCopy = false;
- for (let i = 0; i < this._pendingFileLoads.length; i++) {
- let pendingLoad = this._pendingFileLoads[i];
- if (pendingLoad.filename != params.filename ||
- pendingLoad.style != params.style)
- continue;
-
-- if (pendingLoad.cancellable.is_cancelled())
-- continue;
-+ for (let j = 0; j < pendingLoad.callers.length; j++) {
-+ if (pendingLoad.callers[j].onFinished) {
-+ if (content && pendingLoad.callers[j].shouldCopy) {
-+ content = object.copy(pendingLoad.callers[j].monitorIndex,
-+ pendingLoad.callers[j].effects);
-
-- pendingLoad.cancellable.cancel();
-- if (pendingLoad.onFinished) {
-- if (content && needsCopy) {
-- content = object.copy(pendingLoad.monitorIndex,
-- pendingLoad.effects);
-- }
-+ }
-
-- needsCopy = true;
-- pendingLoad.onFinished(content);
-+ pendingLoad.callers[j].onFinished(content);
-+ }
- }
-
- this._pendingFileLoads.splice(i, 1);
-@@ -211,15 +201,6 @@ const BackgroundCache = new Lang.Class({
- }));
- },
-
-- _removePendingFileLoad: function(fileLoad) {
-- for (let i = 0; i < this._pendingFileLoads.length; i++) {
-- if (this._pendingFileLoads[i].cancellable == fileLoad.cancellable) {
-- this._pendingFileLoads.splice(i, 1);
-- break;
-- }
-- }
-- },
--
- getImageContent: function(params) {
- params = Params.parse(params, { monitorIndex: 0,
- style: null,
---
-cgit v0.9.2
diff --git a/gnome-base/gnome-shell/gnome-shell-3.10.3.ebuild b/gnome-base/gnome-shell/gnome-shell-3.10.3.ebuild
deleted file mode 100644
index 90c591df5aba..000000000000
--- a/gnome-base/gnome-shell/gnome-shell-3.10.3.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.3.ebuild,v 1.1 2014/02/06 23:41:20 eva Exp $
-
-EAPI="5"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-PYTHON_COMPAT=( python2_{6,7} )
-
-inherit autotools eutils gnome2 multilib pax-utils python-r1 systemd
-
-DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
-
-LICENSE="GPL-2+ LGPL-2+"
-SLOT="0"
-IUSE="+bluetooth +i18n +networkmanager -openrc-force"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# libXfixes-5.0 needed for pointer barriers
-# FIXME:
-# * gstreamer support is currently automagic
-# * mutter/mutter-wayland support is automagic
-#
-# gnome-shell/gnome-control-center/mutter/gnome-settings-daemon better to be in sync for 3.8.3
-# https://mail.gnome.org/archives/gnome-announce-list/2013-June/msg00005.html
-COMMON_DEPEND="
- app-crypt/libsecret
- >=app-accessibility/at-spi2-atk-2.5.3
- >=dev-libs/atk-2[introspection]
- >=app-crypt/gcr-3.7.5[introspection]
- >=dev-libs/glib-2.37:2
- >=dev-libs/gjs-1.38.1
- >=dev-libs/gobject-introspection-0.10.1
- >=x11-libs/gtk+-3.7.9:3[introspection]
- >=media-libs/clutter-1.13.4:1.0[introspection]
- >=dev-libs/json-glib-0.13.2
- >=dev-libs/libcroco-0.6.8:0.6
- >=gnome-base/gnome-desktop-3.7.90:3=[introspection]
- >=gnome-base/gsettings-desktop-schemas-3.7.4
- >=gnome-base/gnome-keyring-3.3.90
- >=gnome-base/gnome-menus-3.5.3:3[introspection]
- gnome-base/libgnome-keyring
- >=gnome-extra/evolution-data-server-3.5.3:=
- >=media-libs/gstreamer-0.11.92:1.0
- >=net-im/telepathy-logger-0.2.4[introspection]
- >=net-libs/telepathy-glib-0.19[introspection]
- >=sys-auth/polkit-0.100[introspection]
- >=x11-libs/libXfixes-5.0
- x11-libs/libXtst
- >=x11-wm/mutter-3.10.1[introspection]
- >=x11-libs/startup-notification-0.11
-
- ${PYTHON_DEPS}
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-
- dev-libs/dbus-glib
- dev-libs/libxml2:2
- gnome-base/librsvg
- media-libs/libcanberra[gtk3]
- media-libs/mesa
- >=media-sound/pulseaudio-2
- >=net-libs/libsoup-2.40:2.4[introspection]
- x11-libs/libX11
- x11-libs/gdk-pixbuf:2[introspection]
- x11-libs/pango[introspection]
- x11-apps/mesa-progs
-
- bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] )
- networkmanager? ( >=net-misc/networkmanager-0.9.8[introspection] )
-"
-# Runtime-only deps are probably incomplete and approximate.
-# Introspection deps generated using:
-# grep -roe "imports.gi.*" gnome-shell-* | cut -f2 -d: | sort | uniq
-# Each block:
-# 1. Pull in polkit-0.101 for pretty authorization dialogs
-# 2. Introspection stuff needed via imports.gi.*
-# 3. gnome-session is needed for gnome-session-quit
-# 4. Control shell settings
-# 5. Systemd needed for suspending support
-# 6. xdg-utils needed for xdg-open, used by extension tool
-# 7. gnome-icon-theme-symbolic and dejavu font neeed for various icons & arrows
-# 8. IBus is needed for i18n integration
-# 9. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
-RDEPEND="${COMMON_DEPEND}
- >=sys-auth/polkit-0.101[introspection]
-
- >=app-accessibility/caribou-0.4.8
- >=gnome-base/gdm-3.5[introspection]
- >=gnome-base/libgnomekbd-2.91.4[introspection]
- media-libs/cogl[introspection]
- >=sys-apps/accountsservice-0.6.14[introspection]
- sys-power/upower[introspection]
-
- >=gnome-base/gnome-session-2.91.91
- >=gnome-base/gnome-settings-daemon-3.8.3
- >=gnome-base/gnome-control-center-3.8.3[bluetooth(+)?]
-
- !openrc-force? ( >=sys-apps/systemd-31 )
-
- x11-misc/xdg-utils
-
- media-fonts/dejavu
- x11-themes/gnome-icon-theme-symbolic
-
- i18n? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk3,introspection] )
- networkmanager? (
- net-misc/mobile-broadband-provider-info
- sys-libs/timezone-data )
-"
-DEPEND="${COMMON_DEPEND}
- dev-libs/libxslt
- >=dev-util/gtk-doc-am-1.17
- >=dev-util/intltool-0.40
- gnome-base/gnome-common
- virtual/pkgconfig
- !!=dev-lang/spidermonkey-1.8.2*
-"
-# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time
-# https://bugs.gentoo.org/show_bug.cgi?id=360413
-
-src_prepare() {
- # Change favorites defaults, bug #479918
- epatch "${FILESDIR}/${PN}-defaults.patch"
-
- # Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.10-bluetooth-flag.patch"
-
- # Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.10-networkmanager-flag.patch"
-
- epatch_user
-
- eautoreconf
- gnome2_src_prepare
-}
-
-src_configure() {
- # Do not error out on warnings
- gnome2_src_configure \
- --enable-man \
- $(use_with bluetooth) \
- $(use_enable networkmanager) \
- BROWSER_PLUGIN_DIR="${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins
-}
-
-src_install() {
- gnome2_src_install
- python_replicate_script "${ED}/usr/bin/gnome-shell-extension-tool"
- python_replicate_script "${ED}/usr/bin/gnome-shell-perf-tool"
-
- # Required for gnome-shell on hardened/PaX, bug #398941
- # Future-proof for >=spidermonkey-1.8.7 following polkit's example
- if has_version '<dev-lang/spidermonkey-1.8.7'; then
- pax-mark mr "${ED}usr/bin/gnome-shell"
- elif has_version '>=dev-lang/spidermonkey-1.8.7[jit]'; then
- pax-mark m "${ED}usr/bin/gnome-shell"
- fi
- # Required for gnome-shell on hardened/PaX #457146 and #457194
- # PaX EMUTRAMP need to be on
- if has_version '>=dev-libs/libffi-3.0.13[pax_kernel]'; then
- pax-mark E "${ED}usr/bin/gnome-shell"
- fi
-}
-
-pkg_postinst() {
- gnome2_pkg_postinst
-
- if ! has_version 'media-libs/gst-plugins-good:1.0' || \
- ! has_version 'media-plugins/gst-plugins-vpx:1.0'; then
- ewarn "To make use of GNOME Shell's built-in screen recording utility,"
- ewarn "you need to either install media-libs/gst-plugins-good:1.0"
- ewarn "and media-plugins/gst-plugins-vpx:1.0, or use dconf-editor to change"
- ewarn "apps.gnome-shell.recorder/pipeline to what you want to use."
- fi
-
- if ! has_version ">=x11-base/xorg-server-1.11"; then
- ewarn "If you use multiple screens, it is highly recommended that you"
- ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of"
- ewarn "pointer barriers which will make it easier to use hot corners."
- fi
-
- if has_version "<x11-drivers/ati-drivers-12"; then
- ewarn "GNOME Shell has been reported to show graphical corruption under"
- ewarn "x11-drivers/ati-drivers-11.*; you may want to switch to open-source"
- ewarn "drivers."
- fi
-
- if has_version "media-libs/mesa[video_cards_radeon]" ||
- has_version "media-libs/mesa[video_cards_r300]" ||
- has_version "media-libs/mesa[video_cards_r600]"; then
- elog "GNOME Shell is unstable under classic-mode r300/r600 mesa drivers."
- elog "Make sure that gallium architecture for r300 and r600 drivers is"
- elog "selected using 'eselect mesa'."
- if ! has_version "media-libs/mesa[gallium]"; then
- ewarn "You will need to emerge media-libs/mesa with USE=gallium."
- fi
- fi
-
- if ! has_version "media-libs/mesa[llvm]"; then
- elog "llvmpipe is used as fallback when no 3D acceleration"
- elog "is available. You will need to enable llvm USE for"
- elog "media-libs/mesa."
- fi
-
- if ! systemd_is_booted; then
- ewarn "${PN} needs Systemd to be *running* for working"
- ewarn "properly. Please follow this guide to migrate:"
- ewarn "http://wiki.gentoo.org/wiki/Systemd"
- fi
-
- if use openrc-force; then
- ewarn "You are enabling 'openrc-force' USE flag to skip systemd requirement,"
- ewarn "this can lead to unexpected problems and is not supported neither by"
- ewarn "upstream neither by Gnome Gentoo maintainers. If you suffer any problem,"
- ewarn "you will need to disable this USE flag system wide and retest before"
- ewarn "opening any bug report."
- fi
-}
diff --git a/gnome-base/gnome-shell/gnome-shell-3.10.4.ebuild b/gnome-base/gnome-shell/gnome-shell-3.10.4-r2.ebuild
index 5801a71ceb8d..c650a6d30df3 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.10.4.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.10.4-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.4.ebuild,v 1.5 2014/03/09 11:58:57 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.4-r2.ebuild,v 1.1 2014/04/12 09:35:41 pacho Exp $
EAPI="5"
GCONF_DEBUG="no"
@@ -16,7 +16,7 @@ LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
IUSE="+bluetooth +i18n +networkmanager -openrc-force"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
# libXfixes-5.0 needed for pointer barriers
# FIXME:
@@ -127,6 +127,28 @@ src_prepare() {
# Make networkmanager optional, bug #398593
epatch "${FILESDIR}/${PN}-3.10-networkmanager-flag.patch"
+ # Fix silent bluetooth linking failure with ld.gold, bug #503952
+ # https://bugzilla.gnome.org/show_bug.cgi?id=726435
+ epatch "${FILESDIR}/${PN}-3.10.4-bluetooth-gold.patch"
+
+ # Fix background glitches with multiple monitors, from 3.11, bug #504530
+ epatch "${FILESDIR}/${PN}-3.10.4-fix-background-manager.patch"
+
+ # network: Add a Wired device (from 'master')
+ epatch "${FILESDIR}/${PN}-3.10.4-wired-network.patch"
+
+ # windowManager: Activate new workspace before removing the current one (from '3.10')
+ epatch "${FILESDIR}/${P}-activate-workspace.patch"
+
+ # perf: Restore shell after runs (from '3.10')
+ epatch "${FILESDIR}/${P}-restore-pref.patch"
+
+ # shell-global: Only set the scale factor if get_setting succeeded (from '3.10')
+ epatch "${FILESDIR}/${P}-scale-factor.patch"
+
+ # Magnifier: Restore crosshairs (from 'master')
+ epatch "${FILESDIR}/${PN}-3.10.4-broken-crosshairs.patch"
+
epatch_user
eautoreconf
diff --git a/gnome-base/gnome-shell/gnome-shell-3.8.4-r2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.8.4-r2.ebuild
deleted file mode 100644
index f375e00df7d9..000000000000
--- a/gnome-base/gnome-shell/gnome-shell-3.8.4-r2.ebuild
+++ /dev/null
@@ -1,242 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.8.4-r2.ebuild,v 1.3 2014/01/05 09:06:21 ago Exp $
-
-EAPI="5"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-PYTHON_COMPAT=( python2_{6,7} )
-
-inherit autotools eutils gnome2 multilib pax-utils python-r1 systemd
-
-DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
-
-LICENSE="GPL-2+ LGPL-2+"
-SLOT="0"
-IUSE="+bluetooth +i18n +networkmanager -openrc-force"
-KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86"
-
-# libXfixes-5.0 needed for pointer barriers
-# TODO: gstreamer support is currently automagical:
-# gstreamer? ( >=media-libs/gstreamer-0.11.92 )
-#
-# gnome-shell/gnome-control-center/mutter/gnome-settings-daemon better to be in sync for 3.8.3
-# https://mail.gnome.org/archives/gnome-announce-list/2013-June/msg00005.html
-COMMON_DEPEND="
- app-crypt/libsecret
- >=app-accessibility/at-spi2-atk-2.5.3
- >=dev-libs/atk-2[introspection]
- >=app-crypt/gcr-3.7.5[introspection]
- >=dev-libs/glib-2.35:2
- >=dev-libs/gjs-1.35.8
- >=dev-libs/gobject-introspection-0.10.1
- >=x11-libs/gtk+-3.7.9:3[introspection]
- >=media-libs/clutter-1.13.4:1.0[introspection]
- >=dev-libs/json-glib-0.13.2
- >=dev-libs/libcroco-0.6.8:0.6
- >=gnome-base/gnome-desktop-3.7.90:3=[introspection]
- >=gnome-base/gsettings-desktop-schemas-3.7.4
- >=gnome-base/gnome-keyring-3.3.90
- >=gnome-base/gnome-menus-3.5.3:3[introspection]
- gnome-base/libgnome-keyring
- >=gnome-extra/evolution-data-server-3.5.3:=
- >=media-libs/gstreamer-0.11.92:1.0
- >=net-im/telepathy-logger-0.2.4[introspection]
- >=net-libs/telepathy-glib-0.19[introspection]
- >=sys-auth/polkit-0.100[introspection]
- >=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-3.8.3[introspection]
- >=x11-libs/startup-notification-0.11
-
- ${PYTHON_DEPS}
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-
- dev-libs/dbus-glib
- dev-libs/libxml2:2
- gnome-base/librsvg
- media-libs/libcanberra[gtk3]
- media-libs/mesa
- >=media-sound/pulseaudio-2
- >=net-libs/libsoup-2.40:2.4[introspection]
- x11-libs/libX11
- x11-libs/gdk-pixbuf:2[introspection]
- x11-libs/pango[introspection]
- x11-apps/mesa-progs
-
- bluetooth? ( >=net-wireless/gnome-bluetooth-3.5[introspection] )
- networkmanager? ( >=net-misc/networkmanager-0.9.6[introspection] )
-"
-# Runtime-only deps are probably incomplete and approximate.
-# Introspection deps generated using:
-# grep -roe "imports.gi.*" gnome-shell-* | cut -f2 -d: | sort | uniq
-# Each block:
-# 1. Pull in polkit-0.101 for pretty authorization dialogs
-# 2. Introspection stuff needed via imports.gi.*
-# 3. gnome-session is needed for gnome-session-quit
-# 4. Control shell settings
-# 5. Systemd needed for suspending support
-# 6. xdg-utils needed for xdg-open, used by extension tool
-# 7. gnome-icon-theme-symbolic and dejavu font neeed for various icons & arrows
-# 8. IBus is needed for i18n integration
-# 9. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
-RDEPEND="${COMMON_DEPEND}
- >=sys-auth/polkit-0.101[introspection]
-
- >=app-accessibility/caribou-0.4.8
- >=gnome-base/gdm-3.5[introspection]
- >=gnome-base/libgnomekbd-2.91.4[introspection]
- media-libs/cogl[introspection]
- >=sys-apps/accountsservice-0.6.14[introspection]
- sys-power/upower[introspection]
-
- >=gnome-base/gnome-session-2.91.91
- >=gnome-base/gnome-settings-daemon-3.8.3
- >=gnome-base/gnome-control-center-3.8.3[bluetooth(+)?]
-
- !openrc-force? ( >=sys-apps/systemd-31 )
-
- x11-misc/xdg-utils
-
- media-fonts/dejavu
- x11-themes/gnome-icon-theme-symbolic
-
- i18n? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk3,introspection] )
- networkmanager? (
- net-misc/mobile-broadband-provider-info
- sys-libs/timezone-data )
-"
-DEPEND="${COMMON_DEPEND}
- dev-libs/libxslt
- >=dev-util/gtk-doc-am-1.17
- >=dev-util/intltool-0.40
- gnome-base/gnome-common
- >=sys-devel/gettext-0.17
- virtual/pkgconfig
- !!=dev-lang/spidermonkey-1.8.2*
-"
-# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time
-# https://bugs.gentoo.org/show_bug.cgi?id=360413
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-src_prepare() {
- # Change favorites defaults, bug #479918
- epatch "${FILESDIR}/${PN}-defaults.patch"
-
- # Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.7.90-bluetooth-flag.patch"
-
- # Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.8.3-networkmanager-flag.patch"
-
- # Re-lock the screen if we're restarted from a previously crashed shell (from 'master')
- epatch "${FILESDIR}/${PN}-3.8.3-relock-screen.patch"
-
- # Reset opacity when not animating (from 3.8 branch)
- epatch "${FILESDIR}/${P}-reset-opacity.patch"
-
- # Unconditionally allocate scrollbars (from 3.8 branch)
- epatch "${FILESDIR}/${P}-allocate-scrollbars.patch"
-
- # ScreenShield: don't allow events through the lock dialog (from 3.8 branch)
- epatch "${FILESDIR}/${P}-events-lock.patch"
-
- # Revert "background: fix asynchronous management of background loading operations" (#481918)
- epatch "${FILESDIR}/${P}-revert-async.patch"
-
- # AppDisplay/FrequentView: filter out hidden applications (from 'master')
- epatch "${FILESDIR}/${PN}-3.8.4-nodisplay.patch"
-
- # Close runDialog as necessary on session mode changes (from 3.10 branch)
- epatch "${FILESDIR}/${PN}-3.8.4-close-rundialog.patch"
-
- epatch_user
-
- eautoreconf
- gnome2_src_prepare
-}
-
-src_configure() {
- # Do not error out on warnings
- gnome2_src_configure \
- --enable-man \
- --disable-jhbuild-wrapper-script \
- $(use_with bluetooth) \
- $(use_enable networkmanager) \
- BROWSER_PLUGIN_DIR="${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins
-}
-
-src_install() {
- gnome2_src_install
- python_replicate_script "${ED}/usr/bin/gnome-shell-extension-tool"
- python_replicate_script "${ED}/usr/bin/gnome-shell-perf-tool"
-
- # Required for gnome-shell on hardened/PaX, bug #398941
- # Future-proof for >=spidermonkey-1.8.7 following polkit's example
- if has_version '<dev-lang/spidermonkey-1.8.7'; then
- pax-mark mr "${ED}usr/bin/gnome-shell"
- elif has_version '>=dev-lang/spidermonkey-1.8.7[jit]'; then
- pax-mark m "${ED}usr/bin/gnome-shell"
- fi
- # Required for gnome-shell on hardened/PaX #457146 and #457194
- # PaX EMUTRAMP need to be on
- if has_version '>=dev-libs/libffi-3.0.13[pax_kernel]'; then
- pax-mark E "${ED}usr/bin/gnome-shell"
- fi
-}
-
-pkg_postinst() {
- gnome2_pkg_postinst
-
- if ! has_version 'media-libs/gst-plugins-good:1.0' || \
- ! has_version 'media-plugins/gst-plugins-vpx:1.0'; then
- ewarn "To make use of GNOME Shell's built-in screen recording utility,"
- ewarn "you need to either install media-libs/gst-plugins-good:1.0"
- ewarn "and media-plugins/gst-plugins-vpx:1.0, or use dconf-editor to change"
- ewarn "apps.gnome-shell.recorder/pipeline to what you want to use."
- fi
-
- if ! has_version ">=x11-base/xorg-server-1.11"; then
- ewarn "If you use multiple screens, it is highly recommended that you"
- ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of"
- ewarn "pointer barriers which will make it easier to use hot corners."
- fi
-
- if has_version "<x11-drivers/ati-drivers-12"; then
- ewarn "GNOME Shell has been reported to show graphical corruption under"
- ewarn "x11-drivers/ati-drivers-11.*; you may want to switch to open-source"
- ewarn "drivers."
- fi
-
- if has_version "media-libs/mesa[video_cards_radeon]" ||
- has_version "media-libs/mesa[video_cards_r300]" ||
- has_version "media-libs/mesa[video_cards_r600]"; then
- elog "GNOME Shell is unstable under classic-mode r300/r600 mesa drivers."
- elog "Make sure that gallium architecture for r300 and r600 drivers is"
- elog "selected using 'eselect mesa'."
- if ! has_version "media-libs/mesa[gallium]"; then
- ewarn "You will need to emerge media-libs/mesa with USE=gallium."
- fi
- fi
-
- if ! has_version "media-libs/mesa[llvm]"; then
- elog "llvmpipe is used as fallback when no 3D acceleration"
- elog "is available. You will need to enable llvm USE for"
- elog "media-libs/mesa."
- fi
-
- if ! systemd_is_booted; then
- ewarn "${PN} needs Systemd to be *running* for working"
- ewarn "properly. Please follow this guide to migrate:"
- ewarn "http://wiki.gentoo.org/wiki/Systemd"
- fi
-
- if use openrc-force; then
- ewarn "You are enabling 'openrc-force' USE flag to skip systemd requirement,"
- ewarn "this can lead to unexpected problems and is not supported neither by"
- ewarn "upstream neither by Gnome Gentoo maintainers. If you suffer any problem,"
- ewarn "you will need to disable this USE flag system wide and retest before"
- ewarn "opening any bug report."
- fi
-}