* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-10 15:41 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-10 15:41 UTC (permalink / raw
To: gentoo-commits
commit: 3abc7ceb725f2eb28fbda1681f0c905c51587ae2
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 10 14:18:03 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Thu Mar 10 14:18:06 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=3abc7ceb
gnome-base/gnome-shell: update nm-applet patch
---
...> gnome-shell-experimental-nm-applet-1.3.patch} | 167 +++++++++++++------
gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild | 4 +-
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 12 +-
3 files changed, 122 insertions(+), 61 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch
similarity index 93%
rename from gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch
rename to gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch
index a1af852..34190c3 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch
@@ -1,4 +1,4 @@
-From 9fb864ff75921974ad1f09ae75dcd6cc94ac90ef Mon Sep 17 00:00:00 2001
+From a4a93f5d68ea9ce6347125eaaf9640ed98654980 Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Tue, 25 Jan 2011 22:08:12 +0100
Subject: [PATCH] Status area: add NetworkManager indicator
@@ -14,14 +14,14 @@ https://bugzilla.gnome.org/show_bug.cgi?id=621707
js/Makefile.am | 2 +
js/misc/modemManager.js | 103 +++
js/ui/panel.js | 3 +-
- js/ui/status/network.js | 1780 +++++++++++++++++++++++++++++++++++++++
+ js/ui/status/network.js | 1841 +++++++++++++++++++++++++++++++++++++++
tools/build/gnome-shell.modules | 17 +
- 6 files changed, 1912 insertions(+), 1 deletions(-)
+ 6 files changed, 1973 insertions(+), 1 deletions(-)
create mode 100644 js/misc/modemManager.js
create mode 100644 js/ui/status/network.js
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
-index c7d875a..78f1361 100644
+index 22670bd..39bb7ab 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -158,6 +158,14 @@ StTooltip StLabel {
@@ -169,10 +169,10 @@ index 0000000..b368511
+};
+Signals.addSignalMethods(ModemCdma.prototype);
diff --git a/js/ui/panel.js b/js/ui/panel.js
-index d1bf3fd..76c10f1 100644
+index c08c3e8..abe0fe2 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
-@@ -38,7 +38,8 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
+@@ -41,7 +41,8 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator,
@@ -184,14 +184,15 @@ index d1bf3fd..76c10f1 100644
if (Config.HAVE_BLUETOOTH)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
new file mode 100644
-index 0000000..ecc80cc
+index 0000000..9700896
--- /dev/null
+++ b/js/ui/status/network.js
-@@ -0,0 +1,1780 @@
+@@ -0,0 +1,1841 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+const ByteArray = imports.byteArray;
+const DBus = imports.dbus;
+const GLib = imports.gi.GLib;
++const GObject = imports.gi.GObject;
+const Lang = imports.lang;
+const Mainloop = imports.mainloop;
+const NetworkManager = imports.gi.NetworkManager;
@@ -300,7 +301,7 @@ index 0000000..ecc80cc
+ },
+
+ _updated: function(ap, strength) {
-+ if (strength > this._bestAP.strength)
++ if (strength > this.bestAP.strength)
+ this.bestAP = ap;
+
+ this.setIcon(this._getIcon());
@@ -350,8 +351,9 @@ index 0000000..ecc80cc
+ this.device = device;
+ if (device) {
+ this.device._delegate = this;
-+ this.device.connect('state-changed', Lang.bind(this, this.deviceStateChanged));
-+ }
++ this._stateChangedId = this.device.connect('state-changed', Lang.bind(this, this.deviceStateChanged));
++ } else
++ this._stateChangedId = 0;
+
+ // protected
+ this._client = client;
@@ -385,6 +387,22 @@ index 0000000..ecc80cc
+ this._createSection();
+ },
+
++ destroy: function() {
++ if (this.device)
++ this.device._delegate = null;
++
++ if (this._stateChangedId) {
++ // Need to go through GObject.Object.prototype because
++ // nm_device_disconnect conflicts with g_signal_disconnect
++ GObject.Object.prototype.disconnect.call(this.device, this._stateChangedId);
++ this._stateChangedId = 0;
++ }
++
++ if (this.titleItem)
++ this.titleItem.destroy();
++ this.section.destroy();
++ },
++
+ setActiveConnection: function(activeConnection) {
+ if (activeConnection == this._activeConnection)
+ // nothing to do
@@ -577,7 +595,7 @@ index 0000000..ecc80cc
+ this.client.deactivate_connection(this._activeConnection);
+ but with this, NM insists in restarting the connection immediately
+ */
-+ this.device.disconnect(function() { });
++ this.device.disconnect(null);
+ }));
+ } else {
+ /* TRANSLATORS: this is the indication that a connection for another logged in user is active,
@@ -642,9 +660,7 @@ index 0000000..ecc80cc
+
+ if (newstate != NetworkManager.DeviceState.DISCONNECTED &&
+ newstate != NetworkManager.DeviceState.ACTIVATED &&
-+ oldstate != NetworkManager.DeviceState.DISCONNECTED &&
-+ oldstate != NetworkManager.DeviceState.ACTIVATED &&
-+ oldstate != NetworkManager.DeviceState.UNMANAGED) {
++ this._statusItem) {
+ // a transition between states that show the status label
+ this._statusItem.label.text = this._getStatusLabel();
+ return;
@@ -720,7 +736,7 @@ index 0000000..ecc80cc
+ is_wwan = true;
+ this.mobileDevice = new ModemManager.ModemCdma(device.udi);
+ this._connectionType = NetworkManager.SETTING_CDMA_SETTING_NAME;
-+ } else if (this._capabilites & NetworkManager.DeviceModemCapabilites.LTE) {
++ } else if (this._capabilites & NetworkManager.DeviceModemCapabilities.LTE) {
+ is_wwan = true;
+ // FIXME: support signal quality
+ }
@@ -734,7 +750,7 @@ index 0000000..ecc80cc
+ }
+
+ if (this.mobileDevice) {
-+ this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
++ this._operatorNameId = this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
+ if (this._operatorItem) {
+ let name = this.mobileDevice.operator_name;
+ if (name) {
@@ -744,7 +760,7 @@ index 0000000..ecc80cc
+ this._operatorItem.actor.hide();
+ }
+ }));
-+ this.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
++ this._signalQualityId = this.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
+ if (this._operatorItem) {
+ this._operatorItem.setIcon(this._getSignalIcon());
+ }
@@ -754,6 +770,13 @@ index 0000000..ecc80cc
+ NMDevice.prototype._init.call(this, client, device, connections, 1);
+ },
+
++ destroy: function() {
++ if (this.mobileDevice)
++ this.mobileDevice.disconnectAll();
++
++ NMDevice.prototype.destroy.call(this);
++ },
++
+ _getSignalIcon: function() {
+ return 'network-cellular-signal-' + signalToIcon(this.mobileDevice.signal_quality);
+ },
@@ -913,12 +936,27 @@ index 0000000..ecc80cc
+ }
+ }
+ }
-+ device.connect('access-point-added', Lang.bind(this, this._accessPointAdded));
-+ device.connect('access-point-removed', Lang.bind(this, this._accessPointRemoved));
++ this._apAddedId = device.connect('access-point-added', Lang.bind(this, this._accessPointAdded));
++ this._apRemovedId = device.connect('access-point-removed', Lang.bind(this, this._accessPointRemoved));
+
+ NMDevice.prototype._init.call(this, client, device, validConnections);
+ },
+
++ destroy: function() {
++ if (this._apAddedId) {
++ // see above for this HACK
++ GObject.Object.prototype.disconnect.call(this.device, this._apAddedId);
++ this._apAddedId = 0;
++ }
++
++ if (this._apRemovedId) {
++ GObject.Object.prototype.disconnect.call(this.device, this._apRemovedId);
++ this._apRemovedId = 0;
++ }
++
++ NMDevice.prototype.destroy.call(this);
++ },
++
+ _findNetwork: function(ssid) {
+ for (let i = 0; i < this._networks.length; i++) {
+ if (ssidCompare(this._networks[i].ssid, ssid))
@@ -932,7 +970,7 @@ index 0000000..ecc80cc
+ let pos = this._findNetwork(ssid);
+ let apObj;
+ if (pos != -1) {
-+ apObj = this._network[pos];
++ apObj = this._networks[pos];
+ if (apObj.accessPoints.indexOf(accessPoint) != -1) {
+ log('Access point was already seen, not adding again');
+ return;
@@ -945,7 +983,7 @@ index 0000000..ecc80cc
+ item: null,
+ accessPoints: [ accessPoint ]
+ };
-+ this._accessPoints.push(apObj);
++ this._networks.push(apObj);
+ }
+
+ // check if this enables new connections for this group
@@ -1182,9 +1220,10 @@ index 0000000..ecc80cc
+ if (fixedChannel && fixedChannel != NetworkManager.utils_wifi_freq_to_channel(ap.frequency))
+ return false;
+
-+ if (!wirelessSettings.ap_security_compatible(wirelessSecuritySettings, ap.flags, ap.wpa_flags, ap.rsn_flags, ap.mode))
-+ return false;
-+ return true;
++ if (!wirelessSecuritySettings)
++ return true;
++
++ return wirelessSettings.ap_security_compatible(wirelessSecuritySettings, ap.flags, ap.wpa_flags, ap.rsn_flags, ap.mode);
+ },
+
+ _createActiveConnectionItems: function() {
@@ -1201,7 +1240,7 @@ index 0000000..ecc80cc
+ { reactive: false });
+ this._disconnectItem = new PopupMenu.PopupMenuItem(_("Disconnect"));
+ this._disconnectItem.connect('activate', Lang.bind(this, function() {
-+ this.device.disconnect(function() { });
++ this.device.disconnect(null);
+ }));
+ } else {
+ // We cannot read the connection (due to ACL, or API incompatibility), but we still show signal if we have it
@@ -1267,7 +1306,7 @@ index 0000000..ecc80cc
+ type: NetworkManager.SETTING_WIRELESS_SETTING_NAME
+ }));
+
-+ accessPoints = sortAccessPoints(apObj.accessPoints);
++ let accessPoints = sortAccessPoints(apObj.accessPoints);
+ this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null)
+ }));
+ }
@@ -1279,7 +1318,7 @@ index 0000000..ecc80cc
+ this._overflowItem = new PopupMenu.PopupSubMenuMenuItem(_("More..."));
+ this.section.addMenuItem(this._overflowItem);
+ }
-+ this._overflowItem.menu.addMenuItem(menuItem);
++ this._overflowItem.menu.addMenuItem(apObj.item);
+ }
+ }
+ },
@@ -1394,19 +1433,23 @@ index 0000000..ecc80cc
+ this._ctypes[NetworkManager.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN;
+
+ this._settings = NMClient.RemoteSettings.new(null);
-+ this._settings.connect('connections-read', Lang.bind(this, function() {
++ this._connectionsReadId = this._settings.connect('connections-read', Lang.bind(this, function() {
+ this._readConnections();
+ this._readDevices();
+ this._syncNMState();
+
+ // Connect to signals late so that early signals don't find in inconsistent state
-+ this._client.connect('notify::manager-running', Lang.bind(this, this._syncNMState));
-+ this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
-+ this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
-+ this._client.connect('notify::active-connections', Lang.bind(this, this._updateIcon));
-+ this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
-+ this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
-+ this._settings.connect('new-connection', Lang.bind(this, this._newConnection));
++ // and connect only once (this signal handler can be called again if NetworkManager goes up and down)
++ if (!this._inited) {
++ this._inited = true;
++ this._client.connect('notify::manager-running', Lang.bind(this, this._syncNMState));
++ this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
++ this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
++ this._client.connect('notify::active-connections', Lang.bind(this, this._updateIcon));
++ this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
++ this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
++ this._settings.connect('new-connection', Lang.bind(this, this._newConnection));
++ }
+ }));
+ },
+
@@ -1463,19 +1506,26 @@ index 0000000..ecc80cc
+ },
+
+ _readDevices: function() {
-+ let devices = this._client.get_devices();
++ let devices = this._client.get_devices() || [ ];
+ for (let i = 0; i < devices.length; ++i) {
+ this._deviceAdded(this._client, devices[i]);
+ }
+ },
+
+ _deviceAdded: function(client, device) {
++ if (device._delegate) {
++ // already seen, not adding again
++ return;
++ }
+ let wrapperClass = this._dtypes[device.get_device_type()];
+ if (wrapperClass) {
+ // XXX: check what nm-applet does here
+ device._description = device.get_product();
+
+ let wrapper = new wrapperClass(this._client, device, this._connections);
++ // FIXME: these notifications are duplicate with those exposed by nm-applet
++ // uncomment this code in 3.2, when we'll conflict with and kill nm-applet
++ /*
+ wrapper._networkLostId = wrapper.connect('network-lost', Lang.bind(this, function() {
+ this._ensureSource();
+ let icon = new St.Icon({ icon_name: 'network-offline',
@@ -1506,7 +1556,7 @@ index 0000000..ecc80cc
+ wrapper._destroyId = wrapper.connect('destroy', function(wrapper) {
+ wrapper.disconnect(wrapper._networkLostId);
+ wrapper.disconnect(wrapper._activationFailedId);
-+ });
++ }); */
+ let section = this['_' + wrapper.category + 'Section'];
+ let devices = this['_' + wrapper.category + 'Devices'];
+
@@ -1527,13 +1577,12 @@ index 0000000..ecc80cc
+
+ _deviceRemoved: function(client, device) {
+ if (!device._delegate) {
-+ log('Removing a network device that was not added (race condition?)');
++ log('Removing a network device that was not added');
+ return;
+ }
+
+ let wrapper = device._delegate;
-+ wrapper.titleItem.destroy();
-+ wrapper.section.destroy();
++ wrapper.destroy();
+
+ let section = this['_' + wrapper.category + 'Section'];
+ let devices = this['_' + wrapper.category + 'Devices'];
@@ -1652,6 +1701,10 @@ index 0000000..ecc80cc
+ },
+
+ _notifyActiveConnection: function(active) {
++ // FIXME: duplicate notifications when nm-applet is running
++ // This code will come back when nm-applet is killed
++ return;
++
+ if (active.state == NetworkManager.ActiveConnectionState.ACTIVATED) {
+
+ // notify only connections that are visible
@@ -1708,11 +1761,11 @@ index 0000000..ecc80cc
+ for (let i = 0; i < connections.length; i++) {
+ let connection = connections[i];
+ if (connection._uuid) {
-+ log('Connection was already seen, when reading the connections for the first time (race condition?)');
++ // connection was already seen (for example because NetworkManager was restarted)
+ continue;
+ }
-+ connection.connect('removed', Lang.bind(this, this._connectionRemoved));
-+ connection.connect('updated', Lang.bind(this, this._updateConnection));
++ connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved));
++ connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection));
+
+ this._updateConnection(connection);
+ this._connections.push(connection);
@@ -1721,12 +1774,12 @@ index 0000000..ecc80cc
+
+ _newConnection: function(settings, connection) {
+ if (connection._uuid) {
-+ log('Connection was already seen, not adding again...');
++ // connection was already seen
+ return;
+ }
+
-+ connection.connect('removed', Lang.bind(this, this._connectionRemoved));
-+ connection.connect('updated', Lang.bind(this, this._updateConnection));
++ connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved));
++ connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection));
+
+ this._updateConnection(connection);
+ this._connections.push(connection);
@@ -1739,9 +1792,15 @@ index 0000000..ecc80cc
+ if (pos != -1)
+ this._connections.splice(connection);
+
-+ if (!connection._everAdded)
-+ return;
++ connection._uuid = null;
++ connection.disconnect(connection._removedId);
++ connection.disconnect(connection._updatedId);
++
++ if (connection._everAdded)
++ this._hideConnection(connection);
++ },
+
++ _hideConnection: function(connection) {
+ let section = connection._section;
+ if (section == NMConnectionCategory.VPN) {
+ this._vpnDevice.removeConnection(connection);
@@ -1752,10 +1811,12 @@ index 0000000..ecc80cc
+ for (let i = 0; i < devices.length; i++)
+ devices[i].removeConnection(connection);
+ }
++ connection._everAdded = false;
+ },
+
+ _updateConnection: function(connection) {
-+ this._connectionRemoved(connection);
++ if (connection._everAdded)
++ this._hideConnection(connection);
+
+ let connectionSettings = connection.get_setting_by_name(NetworkManager.SETTING_CONNECTION_SETTING_NAME);
+ connection._type = connectionSettings.type;
@@ -1969,7 +2030,7 @@ index 0000000..ecc80cc
+ }
+};
diff --git a/tools/build/gnome-shell.modules b/tools/build/gnome-shell.modules
-index 778db20..6ad230d 100644
+index 3f51fa2..73332b8 100644
--- a/tools/build/gnome-shell.modules
+++ b/tools/build/gnome-shell.modules
@@ -9,6 +9,8 @@
@@ -1981,7 +2042,7 @@ index 778db20..6ad230d 100644
<repository type="tarball" name="cairo.org"
href="http://cairographics.org/"/>
<repository type="tarball" name="0pointer.de"
-@@ -329,4 +331,19 @@
+@@ -367,4 +369,19 @@
</dependencies>
</autotools>
@@ -2002,4 +2063,4 @@ index 778db20..6ad230d 100644
+ </autotools>
</moduleset>
--
-1.7.4
+1.7.4
\ No newline at end of file
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
index f1ad0a0..4a3c9cf 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
@@ -31,7 +31,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=x11-libs/gtk+-3.0.0:3[introspection]
>=media-libs/clutter-1.5.15[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-0.1.7.1
+ >=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
>=media-libs/gst-plugins-base-0.10.16
@@ -65,7 +65,7 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/dconf-0.4.1
>=gnome-base/libgnomekbd-2.91.4[introspection]
sys-power/upower[introspection]
-
+
>=gnome-base/gnome-session-2.91.91
>=gnome-base/gnome-settings-daemon-2.91
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 5708018..f44e67b 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -32,7 +32,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=x11-libs/gtk+-3.0.0:3[introspection]
>=media-libs/clutter-1.5.15[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-0.1.7.1
+ >=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
>=media-libs/gst-plugins-base-0.10.16
@@ -55,8 +55,8 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
x11-libs/startup-notification
x11-libs/libXfixes
x11-apps/mesa-progs
-
- nm-applet? ( >=net-misc/networkmanager-9999[introspection] )"
+
+ nm-applet? ( >=net-misc/networkmanager-0.8.996[introspection] )"
# Runtime-only deps are probably incomplete and approximate.
# Each block:
# 1. Introspection stuff + dconf needed via imports.gi.*
@@ -68,13 +68,13 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/dconf-0.4.1
>=gnome-base/libgnomekbd-2.91.4[introspection]
sys-power/upower[introspection]
-
+
>=gnome-base/gnome-session-2.91.91
>=gnome-base/gnome-settings-daemon-2.91
>=gnome-base/gnome-control-center-2.91
- nm-applet? ( >=gnome-extra/nm-applet-9999 )"
+ nm-applet? ( >=gnome-extra/nm-applet-0.8.996 )"
DEPEND="${COMMON_DEPEND}
sys-devel/gettext
>=dev-util/pkgconfig-0.22
@@ -92,7 +92,7 @@ src_prepare() {
ewarn "Adding support for the experimental NetworkManager applet."
ewarn "This needs the latest NetworkManager & nm-applet trunk."
ewarn "Report bugs about this to 'nirbheek' on #gentoo-desktop @ FreeNode."
- epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.2.patch"
+ epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.3.patch"
fi
epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2018-09-10 21:33 Gilles Dartiguelongue
0 siblings, 0 replies; 25+ messages in thread
From: Gilles Dartiguelongue @ 2018-09-10 21:33 UTC (permalink / raw
To: gentoo-commits
commit: b6628fdbdc50807a2519be06bf0e32ffeb05e9a1
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 10 11:22:57 2018 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Mon Sep 10 14:01:30 2018 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=b6628fdb
gnome-base/gnome-shell: make bluetooth support optional again
Package-Manager: Portage-2.3.49, Repoman-2.3.10
Manifest-Sign-Key: 0x5A56C8CD0C13248A
.../gnome-shell/files/3.26-bluetooth-flag.patch | 72 ++++++++++++++++++++++
...26.2-r1.ebuild => gnome-shell-3.26.2-r2.ebuild} | 11 ++--
2 files changed, 79 insertions(+), 4 deletions(-)
diff --git a/gnome-base/gnome-shell/files/3.26-bluetooth-flag.patch b/gnome-base/gnome-shell/files/3.26-bluetooth-flag.patch
new file mode 100644
index 00000000..65686954
--- /dev/null
+++ b/gnome-base/gnome-shell/files/3.26-bluetooth-flag.patch
@@ -0,0 +1,72 @@
+From 7ca3e1a9d18e6f6154b4479bcd94d420bc69798c Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Mon, 10 Sep 2018 13:17:39 +0200
+Subject: [PATCH] Make bluetooth support optional
+
+https://bugs.gentoo.org/show_bug.cgi?id=398145
+---
+ js/misc/meson.build | 2 +-
+ meson.build | 15 ++++++++++++++-
+ meson_options.txt | 7 +++++++
+ 3 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/js/misc/meson.build b/js/misc/meson.build
+index 20489496c..3071f9dfb 100644
+--- a/js/misc/meson.build
++++ b/js/misc/meson.build
+@@ -3,7 +3,7 @@ jsconf.set('PACKAGE_NAME', meson.project_name())
+ jsconf.set('PACKAGE_VERSION', meson.project_version())
+ jsconf.set('GETTEXT_PACKAGE', meson.project_name())
+ jsconf.set('LIBMUTTER_API_VERSION', mutter_api_version)
+-jsconf.set10('HAVE_BLUETOOTH', bt_dep.found())
++jsconf.set10('HAVE_BLUETOOTH', have_bluetooth)
+ jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager)
+ jsconf.set('datadir', datadir)
+ jsconf.set('libexecdir', libexecdir)
+diff --git a/meson.build b/meson.build
+index b82c41398..7d342ff61 100644
+--- a/meson.build
++++ b/meson.build
+@@ -91,7 +91,20 @@ startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
+ x11_dep = dependency('x11')
+ schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
+
+-bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: false)
++bt_dep = []
++enable_bluetooth = get_option('enable-networkmanager')
++if enable_bluetooth != 'no'
++ want_bluetooth = enable_bluetooth == 'yes'
++ bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: want_bluetooth)
++ have_bluetooth = bt_dep.found()
++
++ if not have_bluetooth
++ bt_dep = []
++ endif
++else
++ have_bluetooth = false
++endif
++
+ gst_dep = dependency('gstreamer-1.0', version: gst_req, required: false)
+ gst_base_dep = dependency('gstreamer-base-1.0', required: false)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index 18899ffdb..9191f8c0e 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -16,6 +16,13 @@ option('enable-man',
+ description: 'Generate man pages'
+ )
+
++option('enable-bluetooth',
++ type: 'combo',
++ choices: ['yes', 'no', 'auto'],
++ value: 'auto',
++ description: 'Enable bluetooth support'
++)
++
+ option('enable-networkmanager',
+ type: 'combo',
+ choices: ['yes', 'no', 'auto'],
+--
+2.18.0
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.26.2-r1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.26.2-r2.ebuild
similarity index 97%
rename from gnome-base/gnome-shell/gnome-shell-3.26.2-r1.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.26.2-r2.ebuild
index 3346d08b..84ff9806 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.26.2-r1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.26.2-r2.ebuild
@@ -6,7 +6,7 @@ GNOME2_LA_PUNT="yes"
GNOME2_EAUTORECONF="yes"
PYTHON_COMPAT=( python3_{4,5,6} )
-inherit gnome-meson multilib pax-utils python-r1 systemd
+inherit gnome-meson multilib pax-utils python-r1 systemd virtualx
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell"
@@ -21,8 +21,6 @@ KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86"
# libXfixes-5.0 needed for pointer barriers
# FIXME:
# * gstreamer support is currently automagic
-# * gnome-bluetooth is automagic
-# * BROWSER_PLUGIN_DIR is not set
COMMON_DEPEND="
>=app-accessibility/at-spi2-atk-2.5.3
>=dev-libs/atk-2[introspection]
@@ -121,6 +119,7 @@ PATCHES=(
# Change favorites defaults, bug #479918
"${FILESDIR}"/${PN}-3.22.0-defaults.patch
# Fix automagic gnome-bluetooth dep, bug #398145
+ "${FILESDIR}"/3.26-bluetooth-flag.patch
)
src_configure() {
@@ -129,7 +128,11 @@ src_configure() {
-Denable-documentation=false \
-Denable-systemd=$(usex !openrc-force yes no) \
-Denable-networkmanager=$(usex networkmanager yes no) \
- $(meson_use nsplugin enable-browser-plugin)
+ $(meson_use nsplugin enable-browser-plugin)
+}
+
+src_test() {
+ virtx meson_src_test
}
src_install() {
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2018-02-03 20:32 Sobhan Mohammadpour
0 siblings, 0 replies; 25+ messages in thread
From: Sobhan Mohammadpour @ 2018-02-03 20:32 UTC (permalink / raw
To: gentoo-commits
commit: 2666153bdd627858efa635a27bd7cf06f47f8b69
Author: Sobhan Mohammadpour <sobhan <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 3 20:32:45 2018 +0000
Commit: Sobhan Mohammadpour <sobhan <AT> gentoo <DOT> org>
CommitDate: Sat Feb 3 20:32:45 2018 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=2666153b
gnome-base/gnome-shell: version bump to 3.26.1
Package-Manager: Portage-2.3.23, Repoman-2.3.6
Manifest-Sign-Key: 0x7DF238CF0AA182E1
.../files/gnome-shell-3.22.0-defaults.patch | 26 +++
gnome-base/gnome-shell/gnome-shell-3.26.1.ebuild | 191 +++++++++++++++++++++
gnome-base/gnome-shell/metadata.xml | 4 +
3 files changed, 221 insertions(+)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.22.0-defaults.patch b/gnome-base/gnome-shell/files/gnome-shell-3.22.0-defaults.patch
new file mode 100644
index 00000000..b80dbc3a
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.22.0-defaults.patch
@@ -0,0 +1,26 @@
+From 7a671f99b7ef2d5f38be67668aac762764b32a42 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 10 Dec 2013 23:33:51 +0100
+Subject: [PATCH 1/2] Alter list of default applications
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ data/org.gnome.shell.gschema.xml.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
+index c1e6b21..368c654 100644
+--- a/data/org.gnome.shell.gschema.xml.in
++++ b/data/org.gnome.shell.gschema.xml.in
+@@ -31,7 +31,7 @@
+ </description>
+ </key>
+ <key name="favorite-apps" type="as">
+- <default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
++ <default>[ 'chromium-browser-chromium.desktop', 'firefox.desktop', 'firefox-bin.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
+ <summary>List of desktop file IDs for favorite applications</summary>
+ <description>
+ The applications corresponding to these identifiers
+--
+2.10.1
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.26.1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.26.1.ebuild
new file mode 100644
index 00000000..34c076ae
--- /dev/null
+++ b/gnome-base/gnome-shell/gnome-shell-3.26.1.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
+PYTHON_COMPAT=( python{3_4,3_5} )
+
+inherit gnome-meson multilib pax-utils python-r1 systemd
+
+DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell"
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+IUSE="+bluetooth +browser-extension +ibus +networkmanager nsplugin -openrc-force"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86"
+
+# libXfixes-5.0 needed for pointer barriers
+# FIXME:
+# * gstreamer support is currently automagic
+# * gnome-bluetooth is automagic
+# * BROWSER_PLUGIN_DIR is not set
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.5.3
+ >=dev-libs/atk-2[introspection]
+ >=app-crypt/gcr-3.7.5[introspection]
+ >=dev-libs/glib-2.53:2[dbus]
+ >=dev-libs/gjs-1.47.0
+ >=dev-libs/gobject-introspection-1.49.1:=
+ dev-libs/libical:=
+ >=x11-libs/gtk+-3.15.0:3[introspection]
+ >=dev-libs/libcroco-0.6.8:0.6
+ >=gnome-base/gnome-desktop-3.7.90:3=[introspection]
+ >=gnome-base/gsettings-desktop-schemas-3.21.3
+ >=gnome-extra/evolution-data-server-3.17.2:=
+ >=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.26.0:0/0[introspection]
+ >=x11-libs/startup-notification-0.11
+
+ ${PYTHON_DEPS}
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+
+ dev-libs/dbus-glib
+ dev-libs/libxml2:2
+ 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-apps/mesa-progs
+
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] )
+ networkmanager? (
+ >=app-crypt/libsecret-0.18
+ >=gnome-extra/nm-applet-0.9.8
+ >=net-misc/networkmanager-0.9.8:=[introspection] )
+ nsplugin? ( >=dev-libs/json-glib-0.13.2 )
+"
+# 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. Introspection stuff needed via imports.gi.*
+# 2. gnome-session is needed for gnome-session-quit
+# 3. Control shell settings
+# 4. Systemd needed for suspending support
+# 5. xdg-utils needed for xdg-open, used by extension tool
+# 6. adwaita-icon-theme and dejavu font neeed for various icons & arrows
+# 7. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
+# 8. IBus is needed for nls integration
+RDEPEND="${COMMON_DEPEND}
+ app-accessibility/at-spi2-core:2[introspection]
+ >=app-accessibility/caribou-0.4.8
+ dev-libs/libgweather:2[introspection]
+ >=sys-apps/accountsservice-0.6.14[introspection]
+ >=sys-power/upower-0.99:=[introspection]
+ x11-libs/pango[introspection]
+
+ >=gnome-base/gnome-session-2.91.91
+ >=gnome-base/gnome-settings-daemon-3.8.3
+
+ !openrc-force? ( >=sys-apps/systemd-31 )
+
+ x11-misc/xdg-utils
+
+ media-fonts/dejavu
+ >=x11-themes/adwaita-icon-theme-3.19.90
+
+ networkmanager? (
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
+ ibus? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk,introspection] )
+"
+# avoid circular dependency, see bug #546134
+PDEPEND="
+ >=gnome-base/gdm-3.5[introspection]
+ >=gnome-base/gnome-control-center-3.8.3[bluetooth(+)?,networkmanager(+)?]
+ browser-extension? ( gnome-extra/chrome-gnome-shell )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.45.3
+ >=dev-util/gtk-doc-am-1.17
+ gnome-base/gnome-common
+ sys-devel/autoconf-archive
+ >=sys-devel/gettext-0.19.6
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # Change favorites defaults, bug #479918
+ "${FILESDIR}"/${PN}-3.22.0-defaults.patch
+ # Fix automagic gnome-bluetooth dep, bug #398145
+)
+
+src_configure() {
+ gnome-meson_src_configure \
+ -Denable-man=true \
+ -Denable-documentation=false \
+ -Denable-systemd=$(usex !openrc-force yes no) \
+ -Denable-networkmanager=$(usex networkmanager yes no) \
+ $(meson_use nsplugin enable-browser-plugin)
+}
+
+src_install() {
+ gnome-meson_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"{,-extension-prefs}
+ elif has_version '>=dev-lang/spidermonkey-1.8.7[jit]'; then
+ pax-mark m "${ED}usr/bin/gnome-shell"{,-extension-prefs}
+ # Required for gnome-shell on hardened/PaX #457146 and #457194
+ # PaX EMUTRAMP need to be on
+ elif has_version '>=dev-libs/libffi-3.0.13[pax_kernel]'; then
+ pax-mark E "${ED}usr/bin/gnome-shell"{,-extension-prefs}
+ else
+ pax-mark m "${ED}usr/bin/gnome-shell"{,-extension-prefs}
+ fi
+}
+
+pkg_postinst() {
+ gnome-meson_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 "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 if you do not have hardware 3D setup."
+ fi
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=563084
+ if has_version "x11-drivers/nvidia-drivers[-kms]"; then
+ ewarn "You will need to enable kms support in x11-drivers/nvidia-drivers,"
+ ewarn "otherwise Gnome will fail to start"
+ fi
+
+ if ! systemd_is_booted; then
+ ewarn "${PN} needs Systemd to be *running* for working"
+ ewarn "properly. Please follow this guide to migrate:"
+ ewarn "https://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/metadata.xml b/gnome-base/gnome-shell/metadata.xml
index d312bdad..3d91d2b5 100644
--- a/gnome-base/gnome-shell/metadata.xml
+++ b/gnome-base/gnome-shell/metadata.xml
@@ -6,6 +6,10 @@
<name>Gentoo GNOME Desktop</name>
</maintainer>
<use>
+ <flag name="browser-extension">Ensure the presence of extensions.gnome.org
+ native connector <pkg>gnome-extra/chrome-gnome-shell</pkg></flag>
+ <flag name="ibus">Enable support for enhanced input methods through
+ <pkg>app-i18n/ibus</pkg></flag>
<flag name="openrc-force">Skip systemd dependency (#480336),
enabling this flag will become your setup to be fully
unsupported by upstream and downstream Gnome team. Do not
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2014-12-21 13:28 Gilles Dartiguelongue
0 siblings, 0 replies; 25+ messages in thread
From: Gilles Dartiguelongue @ 2014-12-21 13:28 UTC (permalink / raw
To: gentoo-commits
commit: 3e30c7a3b814475de587d6c4d5e24f5adb4ec8e2
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 21 11:00:18 2014 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Sun Dec 21 11:00:18 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=3e30c7a3
gnome-base/gnome-shell: 3.14.2 → 3.14.3
---
...around-quoting-issues-in-configure-script.patch | 33 ----------------------
...ell-3.14.2.ebuild => gnome-shell-3.14.3.ebuild} | 5 +---
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 2 +-
3 files changed, 2 insertions(+), 38 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch b/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch
deleted file mode 100644
index 9f5f457..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b05ab0eaebd9e6e58f1b9c092e05323c5b901a2b Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Mon, 27 Oct 2014 16:45:10 +0300
-Subject: [PATCH] build: Workaround quoting issues in configure script
-
-Default value of BROWSER_PLUGIN_DIR variable contains special symbols.
-Thus quoting and inlining it in parameter expansion is not portable.
-In particular it does not work in dash. Replace ${a:-b} parameter
-expansion with conditional statement.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=739241
----
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index d55848b..5b8c306 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -232,7 +232,9 @@ esac
- AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
- AC_SUBST(AM_CFLAGS)
-
--BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
-+if test -z "${BROWSER_PLUGIN_DIR}"; then
-+ BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
-+fi
- AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
-
- AC_CONFIG_FILES([
---
-2.1.3
-
diff --git a/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.14.3.ebuild
similarity index 97%
rename from gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.14.3.ebuild
index d11763a..b740e0d 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.14.3.ebuild
@@ -43,7 +43,7 @@ COMMON_DEPEND="
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
x11-libs/libXtst
- >=x11-wm/mutter-3.14.2[introspection]
+ >=x11-wm/mutter-3.14.3[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
@@ -128,9 +128,6 @@ src_prepare() {
# https://bugzilla.gnome.org/show_bug.cgi?id=726435
epatch "${FILESDIR}/${PN}-3.14.0-bluetooth-gold.patch"
- # Fix build with non-bash /bin/sh, see bug #526408
- epatch "${FILESDIR}/${PN}-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch"
-
epatch_user
eautoreconf
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 7624368..ad3903f 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -50,7 +50,7 @@ COMMON_DEPEND="
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
x11-libs/libXtst
- >=x11-wm/mutter-3.14.2[introspection]
+ >=x11-wm/mutter-3.14.3[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2014-11-29 16:49 Remi Cardona
0 siblings, 0 replies; 25+ messages in thread
From: Remi Cardona @ 2014-11-29 16:49 UTC (permalink / raw
To: gentoo-commits
commit: 36eba783b56e30c212cdb9585fcc7dade98c5e77
Author: Rémi Cardona <remi <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 29 16:47:22 2014 +0000
Commit: Remi Cardona <remi <AT> gentoo <DOT> org>
CommitDate: Sat Nov 29 16:48:38 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=36eba783
gnome-base/gnome-shell: Fix build with non-bash /bin/sh
Patch comes from upstream git, so -9999 doesn't need it.
---
...around-quoting-issues-in-configure-script.patch | 33 ++++++++++++++++++++++
gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild | 3 ++
2 files changed, 36 insertions(+)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch b/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch
new file mode 100644
index 0000000..9f5f457
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch
@@ -0,0 +1,33 @@
+From b05ab0eaebd9e6e58f1b9c092e05323c5b901a2b Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 27 Oct 2014 16:45:10 +0300
+Subject: [PATCH] build: Workaround quoting issues in configure script
+
+Default value of BROWSER_PLUGIN_DIR variable contains special symbols.
+Thus quoting and inlining it in parameter expansion is not portable.
+In particular it does not work in dash. Replace ${a:-b} parameter
+expansion with conditional statement.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=739241
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d55848b..5b8c306 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -232,7 +232,9 @@ esac
+ AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
+ AC_SUBST(AM_CFLAGS)
+
+-BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
++if test -z "${BROWSER_PLUGIN_DIR}"; then
++ BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
++fi
+ AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
+
+ AC_CONFIG_FILES([
+--
+2.1.3
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild
index 7db3234..d11763a 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.14.2.ebuild
@@ -128,6 +128,9 @@ src_prepare() {
# https://bugzilla.gnome.org/show_bug.cgi?id=726435
epatch "${FILESDIR}/${PN}-3.14.0-bluetooth-gold.patch"
+ # Fix build with non-bash /bin/sh, see bug #526408
+ epatch "${FILESDIR}/${PN}-3.14.2-build-Workaround-quoting-issues-in-configure-script.patch"
+
epatch_user
eautoreconf
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2014-04-15 22:05 Gilles Dartiguelongue
0 siblings, 0 replies; 25+ messages in thread
From: Gilles Dartiguelongue @ 2014-04-15 22:05 UTC (permalink / raw
To: gentoo-commits
commit: be235b8f86137da0a471b6736744e47047a6b8d5
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 12 21:48:30 2014 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Tue Apr 15 22:00:20 2014 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=be235b8f
gnome-base/gnome-shell: 3.10.4-r2 → 3.12.0
---
.../gnome-shell-3.10-networkmanager-flag.patch | 228 ---------------------
.../files/gnome-shell-3.10.4-bluetooth-gold.patch | 31 +++
...patch => gnome-shell-3.12-bluetooth-flag.patch} | 32 +--
...l-3.10.2.1.ebuild => gnome-shell-3.12.0.ebuild} | 35 ++--
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 31 +--
5 files changed, 83 insertions(+), 274 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch
deleted file mode 100644
index 4e28835..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 2ca59eb6e8ca9ba76757ede04e734c743aa21769 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 10 Dec 2013 23:37:08 +0100
-Subject: [PATCH 3/3] Make networkmanager support optional
-
- * 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 | 46 ++++++++++++++++++++++++++++++++++++++++++++--
- js/Makefile.am | 1 +
- js/misc/config.js.in | 2 ++
- js/ui/panel.js | 15 ++++++++++++---
- js/ui/sessionMode.js | 7 ++++++-
- src/Makefile.am | 12 +++++++++---
- 6 files changed, 74 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index e749ca6..5044302 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -91,8 +91,6 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
- libcanberra libcanberra-gtk3
- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
- polkit-agent-1 >= $POLKIT_MIN_VERSION
-- 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, $SHARED_PCS)
-@@ -169,6 +167,38 @@ if test "$langinfo_ok" = "yes"; then
- [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()
-
-@@ -210,3 +240,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 d614f4f..88a3887 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 2337a63..17e4f10 100644
---- a/js/ui/panel.js
-+++ b/js/ui/panel.js
-@@ -809,7 +809,12 @@ const AggregateMenu = new Lang.Class({
- this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
- this.actor.add_child(this._indicators);
-
-- this._network = new imports.ui.status.network.NMApplet();
-+ if (Config.HAVE_NETWORKMANAGER) {
-+ this._network = new imports.ui.status.network.NMApplet();
-+ } else {
-+ this._network = null;
-+ }
-+
- if (Config.HAVE_BLUETOOTH) {
- this._bluetooth = new imports.ui.status.bluetooth.Indicator();
- } else {
-@@ -824,7 +829,9 @@ const AggregateMenu = new Lang.Class({
- this._screencast = new imports.ui.status.screencast.Indicator();
-
- this._indicators.add_child(this._screencast.indicators);
-- this._indicators.add_child(this._network.indicators);
-+ if (this._network) {
-+ this._indicators.add_child(this._network.indicators);
-+ }
- if (this._bluetooth) {
- this._indicators.add_child(this._bluetooth.indicators);
- }
-@@ -836,7 +843,9 @@ const AggregateMenu = new Lang.Class({
- this.menu.addMenuItem(this._volume.menu);
- this.menu.addMenuItem(this._brightness.menu);
- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-- this.menu.addMenuItem(this._network.menu);
-+ if (this._network) {
-+ this.menu.addMenuItem(this._network.menu);
-+ }
- if (this._bluetooth) {
- this.menu.addMenuItem(this._bluetooth.menu);
- }
-diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
-index eb04c62..b882364 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 = {
-@@ -92,7 +94,10 @@ const _modes = {
- isLocked: false,
- isPrimary: true,
- unlockDialog: imports.ui.unlockDialog.UnlockDialog,
-- components: ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ components: Config.HAVE_NETWORKMANAGER ?
-+ ['networkAgent', 'polkitAgent', 'telepathyClient',
-+ 'keyring', 'autorunManager', 'automountManager'] :
-+ ['polkitAgent', 'telepathyClient',
- 'keyring', 'autorunManager', 'automountManager'],
- panel: {
- left: ['activities', 'appMenu'],
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 8041052..b5da6aa 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -103,7 +103,6 @@ shell_public_headers_h = \
- 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 \
-@@ -140,7 +139,6 @@ libgnome_shell_base_la_SOURCES = \
- shell-menu-tracker.c \
- shell-menu-tracker.h \
- shell-mount-operation.c \
-- shell-network-agent.c \
- shell-perf-log.c \
- shell-polkit-authentication-agent.h \
- shell-polkit-authentication-agent.c \
-@@ -175,6 +173,11 @@ libgnome_shell_sources = \
-
- libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
-
-+if HAVE_NETWORKMANAGER
-+libgnome_shell_la_SOURCES += shell-network-agent.c
-+shell_public_headers_h += shell-network-agent.h
-+endif
-+
- libgnome_shell_la_gir_sources = \
- $(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_base_la_SOURCES) $(libgnome_shell_sources))
-
-@@ -331,7 +334,10 @@ INTROSPECTION_GIRS += ShellMenu-0.1.gir
- CLEANFILES += ShellMenu-0.1.gir
-
- Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.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 HAVE_NETWORKMANAGER
- Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
- # Hack! we use PROGRAM instead of LIBS so that the soname is not included
- # in the typelib. This way the symbols will be resolved with the libgnome-shell
---
-1.8.5.1
-
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10.4-bluetooth-gold.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-bluetooth-gold.patch
new file mode 100644
index 0000000..b688dd6
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10.4-bluetooth-gold.patch
@@ -0,0 +1,31 @@
+From 9f056842fad21dc69a51fd9f01543cd85a6d4047 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sat, 15 Mar 2014 17:48:41 -0400
+Subject: [PATCH 3/3] build: Add BLUETOOTH_LIBS to libgnome-shell's libadd for
+ ld.gold
+
+For ld.gold, adding BLUETOOTH_LIBS to gnome_shell_LDADD has no effect:
+the libgnome-bluetooth-applet must be linked to the binary that actually
+uses a function from libgnome-bluetooth-applet, i.e. to libgnome-shell.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=726435
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index f489a56..79838a3 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -320,7 +320,7 @@ libgnome_shell_base_la_LIBADD = $(libgnome_shell_libadd)
+ libgnome_shell_base_la_CPPFLAGS = $(gnome_shell_cflags)
+
+ libgnome_shell_la_LDFLAGS = $(libgnome_shell_ldflags)
+-libgnome_shell_la_LIBADD = $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) libgnome-shell-base.la
++libgnome_shell_la_LIBADD = $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) $(BLUETOOTH_LIBS) libgnome-shell-base.la
+ libgnome_shell_la_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags)
+
+ if HAVE_MUTTER_WAYLAND
+--
+1.9.0
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.12-bluetooth-flag.patch
similarity index 57%
rename from gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch
rename to gnome-base/gnome-shell/files/gnome-shell-3.12-bluetooth-flag.patch
index e74e18f..2fa93af 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.12-bluetooth-flag.patch
@@ -1,4 +1,4 @@
-From d15e9df8903c05fa0e355b3b1b133171c706d3ac Mon Sep 17 00:00:00 2001
+From 3c9c3b19fcb212171036e1e57e749411b5fd7d65 Mon Sep 17 00:00:00 2001
From: Sobhan Mohammadpour <sobhanmohammadpour1@yahoo.fr>
Date: Thu, 28 Feb 2013 18:48:32 +0330
Subject: [PATCH 2/3] Make bluetooth support optional
@@ -13,28 +13,32 @@ 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 | 7 +++++++
- 1 file changed, 7 insertions(+)
+ configure.ac | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 334323a..e749ca6 100644
+index 9a30e65..aa710f0 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -116,6 +116,10 @@ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.7.4)
- PKG_CHECK_MODULES(CARIBOU, caribou-1.0 >= 0.4.8)
+@@ -138,11 +138,21 @@ AS_IF([test x$enable_browser_plugin = xyes], [
+ ])
+ AM_CONDITIONAL(BUILD_BROWSER_PLUGIN, test x$enable_browser_plugin = xyes)
- AC_MSG_CHECKING([for bluetooth support])
++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.9.0],
- [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
- BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
-@@ -128,6 +132,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.9.0],
+ PKG_CHECK_MODULES(BLUETOOTH, gnome-bluetooth-1.0 >= 3.9.0,
+- [AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
+- AC_SUBST([HAVE_BLUETOOTH],[1])],
++ [AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
++ AC_SUBST([HAVE_BLUETOOTH],[1])
++ AC_MSG_RESULT([yes])],
[AC_DEFINE([HAVE_BLUETOOTH],[0])
- AC_SUBST([HAVE_BLUETOOTH],[0])
- AC_MSG_RESULT([no])])
+- AC_SUBST([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])])
@@ -42,5 +46,5 @@ index 334323a..e749ca6 100644
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.5.1
+1.9.0
diff --git a/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.12.0.ebuild
similarity index 89%
rename from gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.12.0.ebuild
index a86ab1f..6dbd7f3 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.12.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -10,37 +10,32 @@ 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"
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell"
LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
IUSE="+bluetooth +i18n +networkmanager -openrc-force"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86"
+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/glib-2.39.1:2
+ >=dev-libs/gjs-1.39
>=dev-libs/gobject-introspection-0.10.1
>=x11-libs/gtk+-3.7.9:3[introspection]
- >=media-libs/clutter-1.13.4:1.0[introspection]
+ >=media-libs/clutter-1.15.90: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/gsettings-desktop-schemas-3.12
>=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
@@ -49,7 +44,7 @@ COMMON_DEPEND="
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
x11-libs/libXtst
- >=x11-wm/mutter-3.10.1[introspection]
+ >=x11-wm/mutter-3.12[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
@@ -68,7 +63,9 @@ COMMON_DEPEND="
x11-apps/mesa-progs
bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] )
- networkmanager? ( >=net-misc/networkmanager-0.9.8[introspection] )
+ networkmanager? (
+ app-crypt/libsecret
+ >=net-misc/networkmanager-0.9.8[introspection] )
"
# Runtime-only deps are probably incomplete and approximate.
# Introspection deps generated using:
@@ -125,10 +122,11 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-defaults.patch"
# Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.10-bluetooth-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.12-bluetooth-flag.patch"
- # 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"
epatch_user
@@ -139,8 +137,9 @@ src_prepare() {
src_configure() {
# Do not error out on warnings
gnome2_src_configure \
+ --enable-browser-plugin \
--enable-man \
- --disable-jhbuild-wrapper-script \
+ $(use_enable !openrc-force systemd) \
$(use_with bluetooth) \
$(use_enable networkmanager) \
BROWSER_PLUGIN_DIR="${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 7a154ed..f7baf30 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -13,7 +13,7 @@ if [[ ${PV} = 9999 ]]; then
fi
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell"
LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
@@ -22,7 +22,7 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
- KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
fi
# libXfixes-5.0 needed for pointer barriers
@@ -33,21 +33,19 @@ fi
# 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/glib-2.39.1:2
+ >=dev-libs/gjs-1.39
>=dev-libs/gobject-introspection-0.10.1
>=x11-libs/gtk+-3.7.9:3[introspection]
- >=media-libs/clutter-1.13.4:1.0[introspection]
+ >=media-libs/clutter-1.15.90: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/gsettings-desktop-schemas-3.12
>=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
@@ -56,7 +54,7 @@ COMMON_DEPEND="
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
x11-libs/libXtst
- >=x11-wm/mutter-3.10.1[introspection]
+ >=x11-wm/mutter-3.12[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
@@ -75,7 +73,9 @@ COMMON_DEPEND="
x11-apps/mesa-progs
bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] )
- networkmanager? ( >=net-misc/networkmanager-0.9.8[introspection] )
+ networkmanager? (
+ app-crypt/libsecret
+ >=net-misc/networkmanager-0.9.8[introspection] )
"
# Runtime-only deps are probably incomplete and approximate.
# Introspection deps generated using:
@@ -132,10 +132,11 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-defaults.patch"
# Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.10-bluetooth-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.12-bluetooth-flag.patch"
- # 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"
epatch_user
@@ -146,8 +147,10 @@ src_prepare() {
src_configure() {
# Do not error out on warnings
gnome2_src_configure \
+ --enable-browser-plugin \
--enable-man \
--disable-jhbuild-wrapper-script \
+ $(use_enable !openrc-force systemd) \
$(use_with bluetooth) \
$(use_enable networkmanager) \
BROWSER_PLUGIN_DIR="${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2013-12-10 23:31 Gilles Dartiguelongue
0 siblings, 0 replies; 25+ messages in thread
From: Gilles Dartiguelongue @ 2013-12-10 23:31 UTC (permalink / raw
To: gentoo-commits
commit: 87f1430f36606631d915cccccb2ef6cff34edf03
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 2 23:56:46 2013 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Tue Dec 10 23:30:33 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=87f1430f
gnome-base/gnome-shell: 3.8.4-r1 → 3.10.2.1
---
...patch => gnome-shell-3.10-bluetooth-flag.patch} | 30 +--
.../gnome-shell-3.10-networkmanager-flag.patch | 228 +++++++++++++++++++++
.../gnome-shell-3.6.0-networkmanager-flag.patch | 222 --------------------
.../gnome-shell/files/gnome-shell-defaults.patch | 25 +++
...ell-9999.ebuild => gnome-shell-3.10.2.1.ebuild} | 142 +++++++------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 133 +++++++-----
gnome-base/gnome-shell/metadata.xml | 8 +-
7 files changed, 431 insertions(+), 357 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch
similarity index 55%
rename from gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch
rename to gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch
index b571754..e74e18f 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10-bluetooth-flag.patch
@@ -1,7 +1,7 @@
-From fbc509635dd60d548945636bb4f1cfec5dc7fb49 Mon Sep 17 00:00:00 2001
-From: root <admin@catmur.co.uk>
-Date: Sun, 8 Jan 2012 13:55:05 +0000
-Subject: [PATCH 1/2] Fix automagic gnome-bluetooth dependency
+From d15e9df8903c05fa0e355b3b1b133171c706d3ac Mon Sep 17 00:00:00 2001
+From: Sobhan Mohammadpour <sobhanmohammadpour1@yahoo.fr>
+Date: Thu, 28 Feb 2013 18:48:32 +0330
+Subject: [PATCH 2/3] Make bluetooth support optional
https://bugs.gentoo.org/show_bug.cgi?id=398145
@@ -13,23 +13,25 @@ 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 files changed, 5 insertions(+), 0 deletions(-)
+ configure.ac | 7 +++++++
+ 1 file changed, 7 insertions(+)
diff --git a/configure.ac b/configure.ac
-index 7ab5c59..f3dbdcc 100644
+index 334323a..e749ca6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -123,6 +123,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
- PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.5.4)
+@@ -116,6 +116,10 @@ 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)]))
++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],
+ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.9.0],
[BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
-@@ -135,6 +137,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
+@@ -128,6 +132,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.9.0],
[AC_DEFINE([HAVE_BLUETOOTH],[0])
AC_SUBST([HAVE_BLUETOOTH],[0])
AC_MSG_RESULT([no])])
@@ -37,8 +39,8 @@ index 7ab5c59..f3dbdcc 100644
+ 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 libedataserverui-3.0 >= $LIBEDATASERVERUI_MIN_VERSION gio-2.0)
+ 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.7.8.6
+1.8.5.1
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch
new file mode 100644
index 0000000..4e28835
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.10-networkmanager-flag.patch
@@ -0,0 +1,228 @@
+From 2ca59eb6e8ca9ba76757ede04e734c743aa21769 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 10 Dec 2013 23:37:08 +0100
+Subject: [PATCH 3/3] Make networkmanager support optional
+
+ * 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 | 46 ++++++++++++++++++++++++++++++++++++++++++++--
+ js/Makefile.am | 1 +
+ js/misc/config.js.in | 2 ++
+ js/ui/panel.js | 15 ++++++++++++---
+ js/ui/sessionMode.js | 7 ++++++-
+ src/Makefile.am | 12 +++++++++---
+ 6 files changed, 74 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e749ca6..5044302 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -91,8 +91,6 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
+ libcanberra libcanberra-gtk3
+ telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
+ polkit-agent-1 >= $POLKIT_MIN_VERSION
+- 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, $SHARED_PCS)
+@@ -169,6 +167,38 @@ if test "$langinfo_ok" = "yes"; then
+ [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()
+
+@@ -210,3 +240,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 d614f4f..88a3887 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 2337a63..17e4f10 100644
+--- a/js/ui/panel.js
++++ b/js/ui/panel.js
+@@ -809,7 +809,12 @@ const AggregateMenu = new Lang.Class({
+ this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
+ this.actor.add_child(this._indicators);
+
+- this._network = new imports.ui.status.network.NMApplet();
++ if (Config.HAVE_NETWORKMANAGER) {
++ this._network = new imports.ui.status.network.NMApplet();
++ } else {
++ this._network = null;
++ }
++
+ if (Config.HAVE_BLUETOOTH) {
+ this._bluetooth = new imports.ui.status.bluetooth.Indicator();
+ } else {
+@@ -824,7 +829,9 @@ const AggregateMenu = new Lang.Class({
+ this._screencast = new imports.ui.status.screencast.Indicator();
+
+ this._indicators.add_child(this._screencast.indicators);
+- this._indicators.add_child(this._network.indicators);
++ if (this._network) {
++ this._indicators.add_child(this._network.indicators);
++ }
+ if (this._bluetooth) {
+ this._indicators.add_child(this._bluetooth.indicators);
+ }
+@@ -836,7 +843,9 @@ const AggregateMenu = new Lang.Class({
+ this.menu.addMenuItem(this._volume.menu);
+ this.menu.addMenuItem(this._brightness.menu);
+ this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+- this.menu.addMenuItem(this._network.menu);
++ if (this._network) {
++ this.menu.addMenuItem(this._network.menu);
++ }
+ if (this._bluetooth) {
+ this.menu.addMenuItem(this._bluetooth.menu);
+ }
+diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
+index eb04c62..b882364 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 = {
+@@ -92,7 +94,10 @@ const _modes = {
+ isLocked: false,
+ isPrimary: true,
+ unlockDialog: imports.ui.unlockDialog.UnlockDialog,
+- components: ['networkAgent', 'polkitAgent', 'telepathyClient',
++ components: Config.HAVE_NETWORKMANAGER ?
++ ['networkAgent', 'polkitAgent', 'telepathyClient',
++ 'keyring', 'autorunManager', 'automountManager'] :
++ ['polkitAgent', 'telepathyClient',
+ 'keyring', 'autorunManager', 'automountManager'],
+ panel: {
+ left: ['activities', 'appMenu'],
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8041052..b5da6aa 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -103,7 +103,6 @@ shell_public_headers_h = \
+ 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 \
+@@ -140,7 +139,6 @@ libgnome_shell_base_la_SOURCES = \
+ shell-menu-tracker.c \
+ shell-menu-tracker.h \
+ shell-mount-operation.c \
+- shell-network-agent.c \
+ shell-perf-log.c \
+ shell-polkit-authentication-agent.h \
+ shell-polkit-authentication-agent.c \
+@@ -175,6 +173,11 @@ libgnome_shell_sources = \
+
+ libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
+
++if HAVE_NETWORKMANAGER
++libgnome_shell_la_SOURCES += shell-network-agent.c
++shell_public_headers_h += shell-network-agent.h
++endif
++
+ libgnome_shell_la_gir_sources = \
+ $(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_base_la_SOURCES) $(libgnome_shell_sources))
+
+@@ -331,7 +334,10 @@ INTROSPECTION_GIRS += ShellMenu-0.1.gir
+ CLEANFILES += ShellMenu-0.1.gir
+
+ Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.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 HAVE_NETWORKMANAGER
+ Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
+ # Hack! we use PROGRAM instead of LIBS so that the soname is not included
+ # in the typelib. This way the symbols will be resolved with the libgnome-shell
+--
+1.8.5.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 c996cc0..0000000
--- 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-defaults.patch b/gnome-base/gnome-shell/files/gnome-shell-defaults.patch
new file mode 100644
index 0000000..80634c1
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-defaults.patch
@@ -0,0 +1,25 @@
+From 4fd7696fc9f392a11b91fa3fc7fe14ac7734ee62 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 10 Dec 2013 23:33:51 +0100
+Subject: [PATCH 1/3] Alter list of default applications
+
+---
+ data/org.gnome.shell.gschema.xml.in.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in.in
+index dc27e47..e8de0ed 100644
+--- a/data/org.gnome.shell.gschema.xml.in.in
++++ b/data/org.gnome.shell.gschema.xml.in.in
+@@ -22,7 +22,7 @@
+ </_description>
+ </key>
+ <key name="favorite-apps" type="as">
+- <default>[ 'epiphany.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default>
++ <default>[ 'chromium-browser-chromium.desktop', 'firefox.desktop', 'firefox-bin.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default>
+ <_summary>List of desktop file IDs for favorite applications</_summary>
+ <_description>
+ The applications corresponding to these identifiers
+--
+1.8.5.1
+
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild
similarity index 57%
copy from gnome-base/gnome-shell/gnome-shell-9999.ebuild
copy to gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild
index 43a9571..a86ab1f 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -7,39 +7,38 @@ GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_{6,7} )
-inherit autotools eutils gnome2 multilib pax-utils python-r1
-if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
-fi
+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 systemd"
-if [[ ${PV} = 9999 ]]; then
- KEYWORDS=""
-else
- KEYWORDS="~amd64 ~x86"
-fi
+IUSE="+bluetooth +i18n +networkmanager -openrc-force"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86"
# libXfixes-5.0 needed for pointer barriers
-# TODO: gstreamer support is currently automagical:
-# gstreamer? ( >=media-libs/gstreamer-0.11.92 )
+# 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.3.90[introspection]
- >=dev-libs/glib-2.31.6:2
- >=dev-libs/gjs-1.33.2
+ >=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.3.9:3[introspection]
- >=media-libs/clutter-1.11.11:1.0[introspection]
+ >=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.2:0.6
- >=gnome-base/gnome-desktop-3.5.1:3=[introspection]
- >=gnome-base/gsettings-desktop-schemas-3.5.4
+ >=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
@@ -49,7 +48,8 @@ COMMON_DEPEND="
>=net-libs/telepathy-glib-0.19[introspection]
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-${PV}[introspection]
+ x11-libs/libXtst
+ >=x11-wm/mutter-3.10.1[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
@@ -58,18 +58,17 @@ COMMON_DEPEND="
dev-libs/dbus-glib
dev-libs/libxml2:2
gnome-base/librsvg
- media-libs/libcanberra
+ media-libs/libcanberra[gtk3]
media-libs/mesa
- media-sound/pulseaudio
- net-libs/libsoup:2.4[introspection]
+ >=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.8.999[introspection] )
- systemd? ( >=sys-apps/systemd-31 )
+ 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:
@@ -79,14 +78,15 @@ COMMON_DEPEND="
# 2. Introspection stuff needed via imports.gi.*
# 3. gnome-session is needed for gnome-session-quit
# 4. Control shell settings
-# 5. xdg-utils needed for xdg-open, used by extension tool
-# 6. gnome-icon-theme-symbolic and dejavu font neeed for various icons & arrows
-# 7. IBus is needed for i18n integration
-# 8. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
+# 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.3
+ >=app-accessibility/caribou-0.4.8
>=gnome-base/gdm-3.5[introspection]
>=gnome-base/libgnomekbd-2.91.4[introspection]
media-libs/cogl[introspection]
@@ -94,54 +94,56 @@ RDEPEND="${COMMON_DEPEND}
sys-power/upower[introspection]
>=gnome-base/gnome-session-2.91.91
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91.92-r1[bluetooth(+)?]
+ >=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] )
+ i18n? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk3,introspection] )
networkmanager? (
net-misc/mobile-broadband-provider-info
sys-libs/timezone-data )
-
- !systemd? ( sys-auth/consolekit )
"
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*"
+ !!=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.5.x-bluetooth-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.10-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.6.0-networkmanager-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.10-networkmanager-flag.patch"
+
+ epatch_user
- [[ ${PV} != 9999 ]] && eautoreconf
+ eautoreconf
gnome2_src_prepare
}
src_configure() {
# Do not error out on warnings
- G2CONF="${G2CONF}
- --enable-man
- --enable-compile-warnings=maximum
- --disable-jhbuild-wrapper-script
- $(use_with bluetooth)
- $(use_enable networkmanager)
- $(use_with systemd)
- BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
- gnome2_src_configure
+ 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() {
@@ -156,6 +158,11 @@ src_install() {
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() {
@@ -177,8 +184,8 @@ pkg_postinst() {
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 use GNOME in"
- ewarn "fallback mode, or switch to open-source drivers."
+ 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]" ||
@@ -192,14 +199,23 @@ pkg_postinst() {
fi
fi
- if has_version "media-libs/mesa[video_cards_intel]" ||
- has_version "media-libs/mesa[video_cards_i915]" ||
- has_version "media-libs/mesa[video_cards_i965]"; then
- elog "GNOME Shell is unstable under gallium-mode i915/i965 mesa drivers."
- elog "Make sure that classic architecture for i915 and i965 drivers is"
- elog "selected using 'eselect mesa'."
- if ! has_version "media-libs/mesa[classic]"; then
- ewarn "You will need to emerge media-libs/mesa with USE=classic."
- 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-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 43a9571..7a154ed 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -7,7 +7,7 @@ GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_{6,7} )
-inherit autotools eutils gnome2 multilib pax-utils python-r1
+inherit autotools eutils gnome2 multilib pax-utils python-r1 systemd
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
@@ -17,29 +17,35 @@ HOMEPAGE="http://live.gnome.org/GnomeShell"
LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
-IUSE="+bluetooth +i18n +networkmanager systemd"
+IUSE="+bluetooth +i18n +networkmanager -openrc-force"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86"
fi
# libXfixes-5.0 needed for pointer barriers
-# TODO: gstreamer support is currently automagical:
-# gstreamer? ( >=media-libs/gstreamer-0.11.92 )
+# 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.3.90[introspection]
- >=dev-libs/glib-2.31.6:2
- >=dev-libs/gjs-1.33.2
+ >=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.3.9:3[introspection]
- >=media-libs/clutter-1.11.11:1.0[introspection]
+ >=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.2:0.6
- >=gnome-base/gnome-desktop-3.5.1:3=[introspection]
- >=gnome-base/gsettings-desktop-schemas-3.5.4
+ >=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
@@ -49,7 +55,8 @@ COMMON_DEPEND="
>=net-libs/telepathy-glib-0.19[introspection]
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-${PV}[introspection]
+ x11-libs/libXtst
+ >=x11-wm/mutter-3.10.1[introspection]
>=x11-libs/startup-notification-0.11
${PYTHON_DEPS}
@@ -58,18 +65,17 @@ COMMON_DEPEND="
dev-libs/dbus-glib
dev-libs/libxml2:2
gnome-base/librsvg
- media-libs/libcanberra
+ media-libs/libcanberra[gtk3]
media-libs/mesa
- media-sound/pulseaudio
- net-libs/libsoup:2.4[introspection]
+ >=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.8.999[introspection] )
- systemd? ( >=sys-apps/systemd-31 )
+ 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:
@@ -79,14 +85,15 @@ COMMON_DEPEND="
# 2. Introspection stuff needed via imports.gi.*
# 3. gnome-session is needed for gnome-session-quit
# 4. Control shell settings
-# 5. xdg-utils needed for xdg-open, used by extension tool
-# 6. gnome-icon-theme-symbolic and dejavu font neeed for various icons & arrows
-# 7. IBus is needed for i18n integration
-# 8. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
+# 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.3
+ >=app-accessibility/caribou-0.4.8
>=gnome-base/gdm-3.5[introspection]
>=gnome-base/libgnomekbd-2.91.4[introspection]
media-libs/cogl[introspection]
@@ -94,38 +101,43 @@ RDEPEND="${COMMON_DEPEND}
sys-power/upower[introspection]
>=gnome-base/gnome-session-2.91.91
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91.92-r1[bluetooth(+)?]
+ >=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] )
+ i18n? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk3,introspection] )
networkmanager? (
net-misc/mobile-broadband-provider-info
sys-libs/timezone-data )
-
- !systemd? ( sys-auth/consolekit )
"
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*"
+ !!=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.5.x-bluetooth-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.10-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.6.0-networkmanager-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.10-networkmanager-flag.patch"
+
+ epatch_user
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
@@ -133,15 +145,12 @@ src_prepare() {
src_configure() {
# Do not error out on warnings
- G2CONF="${G2CONF}
- --enable-man
- --enable-compile-warnings=maximum
- --disable-jhbuild-wrapper-script
- $(use_with bluetooth)
- $(use_enable networkmanager)
- $(use_with systemd)
- BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
- gnome2_src_configure
+ 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() {
@@ -156,6 +165,11 @@ src_install() {
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() {
@@ -177,8 +191,8 @@ pkg_postinst() {
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 use GNOME in"
- ewarn "fallback mode, or switch to open-source drivers."
+ 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]" ||
@@ -192,14 +206,23 @@ pkg_postinst() {
fi
fi
- if has_version "media-libs/mesa[video_cards_intel]" ||
- has_version "media-libs/mesa[video_cards_i915]" ||
- has_version "media-libs/mesa[video_cards_i965]"; then
- elog "GNOME Shell is unstable under gallium-mode i915/i965 mesa drivers."
- elog "Make sure that classic architecture for i915 and i965 drivers is"
- elog "selected using 'eselect mesa'."
- if ! has_version "media-libs/mesa[classic]"; then
- ewarn "You will need to emerge media-libs/mesa with USE=classic."
- 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/metadata.xml b/gnome-base/gnome-shell/metadata.xml
index 68a012a..c2ad070 100644
--- a/gnome-base/gnome-shell/metadata.xml
+++ b/gnome-base/gnome-shell/metadata.xml
@@ -4,8 +4,10 @@
<herd>gnome</herd>
<use>
<flag name="i18n">Enable support for enhanced input methods through
- <pkg>app-i18n/ibus</pkg></flag>
- <flag name="systemd">Use <pkg>sys-apps/systemd</pkg> instead of
- <pkg>sys-auth/consolekit</pkg> for session tracking</flag>
+ <pkg>app-i18n/ibus</pkg></flag>
+ <flag name="openrc-force">Skip systemd dependency (#480336),
+ enabling this flag will become your setup to be fully
+ unsupported by upstream and downstream Gnome team. Do not
+ try to enable it unless completely needed</flag>
</use>
</pkgmetadata>
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2012-10-02 1:51 Alexandre Rostovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Rostovtsev @ 2012-10-02 1:51 UTC (permalink / raw
To: gentoo-commits
commit: ce790b3bac45f85cb49715815d26757b83470ae5
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 2 01:50:12 2012 +0000
Commit: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
CommitDate: Tue Oct 2 01:50:12 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ce790b3b
gnome-base/gnome-shell: make networkmanager optional, once again
Thanks to zchs for the reminder.
---
...=> gnome-shell-3.6.0-networkmanager-flag.patch} | 120 +++++++++++---------
gnome-base/gnome-shell/gnome-shell-3.6.0.ebuild | 3 +-
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 3 +-
3 files changed, 70 insertions(+), 56 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch b/gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch
similarity index 69%
rename from gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch
rename to gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch
index bf43644..c996cc0 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.6.0-networkmanager-flag.patch
@@ -1,7 +1,7 @@
-From 98c765809541b373e487eb4b449362a35d7bcb6c Mon Sep 17 00:00:00 2001
+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 2/2] Make NM optional
+Subject: [PATCH] Make NM optional
[ Alexandre Rostovtsev <tetromino@gentoo.org> :
* use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
@@ -13,15 +13,16 @@ Subject: [PATCH 2/2] Make NM optional
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/main.js | 7 +++++--
- src/Makefile.am | 18 +++++++++++++-----
- 5 files changed, 67 insertions(+), 8 deletions(-)
+ 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 f3dbdcc..566a78c 100644
+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
@@ -69,7 +70,7 @@ index f3dbdcc..566a78c 100644
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)
-@@ -262,3 +295,15 @@ AC_CONFIG_FILES([
+@@ -260,3 +293,15 @@ AC_CONFIG_FILES([
man/Makefile
])
AC_OUTPUT
@@ -86,10 +87,10 @@ index f3dbdcc..566a78c 100644
+ Support for GStreamer recording: $build_recorder
+"
diff --git a/js/Makefile.am b/js/Makefile.am
-index 37c4a92..a1b1408 100644
+index a3e4917..4b00193 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
-@@ -7,6 +7,7 @@ misc/config.js: misc/config.js.in Makefile
+@@ -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" \
@@ -110,40 +111,56 @@ index 9769104..9c4795d 100644
/* gettext package */
const GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
/* locale dir */
-diff --git a/js/ui/main.js b/js/ui/main.js
-index adfaae2..182623c 100644
---- a/js/ui/main.js
-+++ b/js/ui/main.js
-@@ -12,6 +12,7 @@ const St = imports.gi.St;
+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;
- const AutomountManager = imports.ui.automountManager;
- const AutorunManager = imports.ui.autorunManager;
-+const Config = imports.misc.config;
- const CtrlAltTab = imports.ui.ctrlAltTab;
- const EndSessionDialog = imports.ui.endSessionDialog;
- const PolkitAuthenticationAgent = imports.ui.polkitAuthenticationAgent;
-@@ -27,7 +28,7 @@ const PlaceDisplay = imports.ui.placeDisplay;
- const RunDialog = imports.ui.runDialog;
- const Layout = imports.ui.layout;
- const LookingGlass = imports.ui.lookingGlass;
--const NetworkAgent = imports.ui.networkAgent;
-+const NetworkAgent = Config.HAVE_NETWORKMANAGER ? imports.ui.networkAgent : null;
- const NotificationDaemon = imports.ui.notificationDaemon;
- const WindowAttentionHandler = imports.ui.windowAttentionHandler;
- const ScreenShield = imports.ui.screenShield;
-@@ -88,7 +89,9 @@ function createUserSession() {
- telepathyClient = new TelepathyClient.Client();
- automountManager = new AutomountManager.AutomountManager();
- autorunManager = new AutorunManager.AutorunManager();
-- networkAgent = new NetworkAgent.NetworkAgent();
-+ if (Config.HAVE_NETWORKMANAGER) {
-+ networkAgent = new NetworkAgent.NetworkAgent();
+-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');
+ }
-
- _initRecorder();
}
+
+ 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..a6279ae 100644
+index a390691..552b640 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -115,9 +115,7 @@ shell_public_headers_h = \
@@ -156,17 +173,17 @@ index a390691..a6279ae 100644
shell-perf-log.h \
shell-screenshot.h \
shell-screen-grabber.h \
-@@ -139,6 +137,10 @@ shell_private_sources = \
- gactionobserver.h \
- gactionobserver.c
+@@ -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
+
- libgnome_shell_la_SOURCES = \
- $(shell_built_sources) \
- $(shell_public_headers_h) \
+ shell_private_sources = \
+ gactionmuxer.h \
+ gactionmuxer.c \
@@ -162,9 +164,7 @@ libgnome_shell_la_SOURCES = \
shell-invert-lightness-effect.c \
shell-keyring-prompt.h \
@@ -177,11 +194,10 @@ index a390691..a6279ae 100644
shell-perf-log.c \
shell-polkit-authentication-agent.h \
shell-polkit-authentication-agent.c \
-@@ -183,6 +183,11 @@ libgnome_shell_la_SOURCES = \
+@@ -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
@@ -189,7 +205,7 @@ index a390691..a6279ae 100644
libgnome_shell_la_gir_sources = \
$(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
-@@ -296,7 +301,10 @@ libgnome_shell_la_LIBADD = \
+@@ -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
@@ -202,5 +218,5 @@ index a390691..a6279ae 100644
Shell_0_1_gir_LIBS = libgnome-shell.la
Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
--
-1.7.8.6
+1.7.12
diff --git a/gnome-base/gnome-shell/gnome-shell-3.6.0.ebuild b/gnome-base/gnome-shell/gnome-shell-3.6.0.ebuild
index 5315f2b..f01a19c 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.6.0.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.6.0.ebuild
@@ -135,8 +135,7 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-3.5.x-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- # FIXME: fails to apply, massive source changes
- #epatch "${FILESDIR}/${PN}-3.5.x-networkmanager-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.6.0-networkmanager-flag.patch"
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 5315f2b..f01a19c 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -135,8 +135,7 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-3.5.x-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- # FIXME: fails to apply, massive source changes
- #epatch "${FILESDIR}/${PN}-3.5.x-networkmanager-flag.patch"
+ epatch "${FILESDIR}/${PN}-3.6.0-networkmanager-flag.patch"
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2012-08-18 15:41 Priit Laes
0 siblings, 0 replies; 25+ messages in thread
From: Priit Laes @ 2012-08-18 15:41 UTC (permalink / raw
To: gentoo-commits
commit: 27fc358400bef7f044b67c9b8c9ce24e0bb67c78
Author: Priit Laes <plaes <AT> plaes <DOT> org>
AuthorDate: Sat Aug 18 15:40:59 2012 +0000
Commit: Priit Laes <plaes <AT> plaes <DOT> org>
CommitDate: Sat Aug 18 15:40:59 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=27fc3584
gnome-base/gnome-shell: Add 3.5.5 to overlay
---
...atch => gnome-shell-3.5.x-bluetooth-flag.patch} | 14 ++--
...=> gnome-shell-3.5.x-networkmanager-flag.patch} | 88 ++++++++-----------
...-shell-9999.ebuild => gnome-shell-3.5.5.ebuild} | 27 +++---
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 27 +++---
4 files changed, 70 insertions(+), 86 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch b/gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch
similarity index 83%
rename from gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch
rename to gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch
index ae23a6c..b571754 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.5.x-bluetooth-flag.patch
@@ -1,7 +1,7 @@
-From 84568fa9454f279ff519a2a11174e112786e46db Mon Sep 17 00:00:00 2001
+From fbc509635dd60d548945636bb4f1cfec5dc7fb49 Mon Sep 17 00:00:00 2001
From: root <admin@catmur.co.uk>
Date: Sun, 8 Jan 2012 13:55:05 +0000
-Subject: [PATCH] Fix automagic gnome-bluetooth dependency
+Subject: [PATCH 1/2] Fix automagic gnome-bluetooth dependency
https://bugs.gentoo.org/show_bug.cgi?id=398145
@@ -17,11 +17,11 @@ so I can at least merge USE=-bluetooth.
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 1c64122..a699838 100644
+index 7ab5c59..f3dbdcc 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -127,6 +127,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
- PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 0.1.7)
+@@ -123,6 +123,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
+ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.5.4)
AC_MSG_CHECKING([for bluetooth support])
+AC_ARG_WITH([bluetooth], AS_HELP_STRING([--without-bluetooth], [Build without gnome-bluetooth library (default: auto)]))
@@ -29,7 +29,7 @@ index 1c64122..a699838 100644
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`
-@@ -138,6 +140,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
+@@ -135,6 +137,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])])
@@ -40,5 +40,5 @@ index 1c64122..a699838 100644
PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION libedataserverui-3.0 >= $LIBEDATASERVERUI_MIN_VERSION gio-2.0)
AC_SUBST(CALENDAR_SERVER_CFLAGS)
--
-1.7.8.2
+1.7.8.6
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch b/gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch
similarity index 74%
rename from gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch
rename to gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch
index ee9d0af..bf43644 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.5.x-networkmanager-flag.patch
@@ -1,7 +1,7 @@
-From 411d751935c9bdc485b113678284edf0cc9e545e Mon Sep 17 00:00:00 2001
+From 98c765809541b373e487eb4b449362a35d7bcb6c 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
+Subject: [PATCH 2/2] Make NM optional
[ Alexandre Rostovtsev <tetromino@gentoo.org> :
* use config.js (and AC_SUBST HAVE_NETWORKMANAGER appropriately);
@@ -16,22 +16,22 @@ Subject: [PATCH] Make NM optional
configure.ac | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
js/Makefile.am | 1 +
js/misc/config.js.in | 2 ++
- js/ui/main.js | 8 ++++++--
- js/ui/panel.js | 3 ++-
- src/Makefile.am | 17 ++++++++++++-----
- 6 files changed, 69 insertions(+), 9 deletions(-)
+ js/ui/main.js | 7 +++++--
+ src/Makefile.am | 18 +++++++++++++-----
+ 5 files changed, 67 insertions(+), 8 deletions(-)
diff --git a/configure.ac b/configure.ac
-index c6ad636..f228ebd 100644
+index f3dbdcc..566a78c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -94,9 +94,42 @@ PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
+@@ -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)
+ gcr-3 >= $GCR_MIN_VERSION
+ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
+##########################
+# Check for NetworkManager
@@ -69,7 +69,7 @@ index c6ad636..f228ebd 100644
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)
-@@ -289,3 +322,15 @@ AC_CONFIG_FILES([
+@@ -262,3 +295,15 @@ AC_CONFIG_FILES([
man/Makefile
])
AC_OUTPUT
@@ -86,32 +86,32 @@ index c6ad636..f228ebd 100644
+ Support for GStreamer recording: $build_recorder
+"
diff --git a/js/Makefile.am b/js/Makefile.am
-index e7751cc..5eb4c18 100644
+index 37c4a92..a1b1408 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
-@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
+@@ -7,6 +7,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|[@]GJS_VERSION@|$(GJS_VERSION)|g" \
-e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
+ -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
- -e "s|[@]SHELL_SYSTEM_CA_FILE@|$(SHELL_SYSTEM_CA_FILE)|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 4a0db16..3df3394 100644
+index 9769104..9c4795d 100644
--- a/js/misc/config.js.in
+++ b/js/misc/config.js.in
-@@ -8,6 +8,8 @@ const PACKAGE_VERSION = '@PACKAGE_VERSION@';
- const GJS_VERSION = '@GJS_VERSION@';
+@@ -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@;
- /* The system TLS CA list */
- const SHELL_SYSTEM_CA_FILE = '@SHELL_SYSTEM_CA_FILE@';
/* gettext package */
+ const GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
+ /* locale dir */
diff --git a/js/ui/main.js b/js/ui/main.js
-index ac9330c..7ca91ee 100644
+index adfaae2..182623c 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -12,6 +12,7 @@ const St = imports.gi.St;
@@ -122,7 +122,7 @@ index ac9330c..7ca91ee 100644
const CtrlAltTab = imports.ui.ctrlAltTab;
const EndSessionDialog = imports.ui.endSessionDialog;
const PolkitAuthenticationAgent = imports.ui.polkitAuthenticationAgent;
-@@ -26,7 +27,7 @@ const PlaceDisplay = imports.ui.placeDisplay;
+@@ -27,7 +28,7 @@ const PlaceDisplay = imports.ui.placeDisplay;
const RunDialog = imports.ui.runDialog;
const Layout = imports.ui.layout;
const LookingGlass = imports.ui.lookingGlass;
@@ -130,8 +130,8 @@ index ac9330c..7ca91ee 100644
+const NetworkAgent = Config.HAVE_NETWORKMANAGER ? imports.ui.networkAgent : null;
const NotificationDaemon = imports.ui.notificationDaemon;
const WindowAttentionHandler = imports.ui.windowAttentionHandler;
- const Scripting = imports.ui.scripting;
-@@ -85,7 +86,10 @@ function _createUserSession() {
+ const ScreenShield = imports.ui.screenShield;
+@@ -88,7 +89,9 @@ function createUserSession() {
telepathyClient = new TelepathyClient.Client();
automountManager = new AutomountManager.AutomountManager();
autorunManager = new AutorunManager.AutorunManager();
@@ -139,39 +139,24 @@ index ac9330c..7ca91ee 100644
+ if (Config.HAVE_NETWORKMANAGER) {
+ networkAgent = new NetworkAgent.NetworkAgent();
+ }
-+
- }
-
- function _createGDMSession() {
-diff --git a/js/ui/panel.js b/js/ui/panel.js
-index 329f118..865ce05 100644
---- a/js/ui/panel.js
-+++ b/js/ui/panel.js
-@@ -45,7 +45,8 @@ if (Config.HAVE_BLUETOOTH)
- STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['bluetooth'] = imports.ui.status.bluetooth.Indicator;
- try {
-- STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
-+ if (Config.HAVE_NETWORKMANAGER)
-+ STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
- } catch(e) {
- log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
+ _initRecorder();
}
diff --git a/src/Makefile.am b/src/Makefile.am
-index 95f1a41..637455e 100644
+index a390691..a6279ae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -110,9 +110,7 @@ shell_public_headers_h = \
- shell-gtk-embed.h \
+@@ -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 \
-@@ -134,6 +132,10 @@ shell_private_sources = \
+@@ -139,6 +137,10 @@ shell_private_sources = \
gactionobserver.h \
gactionobserver.c
@@ -182,8 +167,8 @@ index 95f1a41..637455e 100644
libgnome_shell_la_SOURCES = \
$(shell_built_sources) \
$(shell_public_headers_h) \
-@@ -159,9 +161,7 @@ libgnome_shell_la_SOURCES = \
- shell-idle-monitor.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 \
@@ -192,10 +177,11 @@ index 95f1a41..637455e 100644
shell-perf-log.c \
shell-polkit-authentication-agent.h \
shell-polkit-authentication-agent.c \
-@@ -181,6 +181,10 @@ libgnome_shell_la_SOURCES = \
+@@ -183,6 +183,11 @@ 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
@@ -203,12 +189,12 @@ index 95f1a41..637455e 100644
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 = \
+@@ -296,7 +301,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 Folks-0.6
-+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 Folks-0.6
+-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
@@ -216,5 +202,5 @@ index 95f1a41..637455e 100644
Shell_0_1_gir_LIBS = libgnome-shell.la
Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
--
-1.7.8.5
+1.7.8.6
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-3.5.5.ebuild
similarity index 90%
copy from gnome-base/gnome-shell/gnome-shell-9999.ebuild
copy to gnome-base/gnome-shell/gnome-shell-3.5.5.ebuild
index c31aca0..91f6214 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.5.5.ebuild
@@ -24,34 +24,34 @@ else
KEYWORDS="~amd64 ~x86"
fi
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
# libXfixes-5.0 needed for pointer barriers
-COMMON_DEPEND=">=app-crypt/gcr-3.3.90[introspection]
+# TODO: gstreamer support is currently automagical:
+# gstreamer? ( >=media-libs/gstreamer-0.11.92 )
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.5.3
+ >=app-crypt/gcr-3.3.90[introspection]
>=dev-libs/glib-2.31.6:2
- >=dev-libs/gjs-1.31.22
+ >=dev-libs/gjs-1.33.2
>=dev-libs/gobject-introspection-0.10.1
>=x11-libs/gtk+-3.3.9:3[introspection]
>=media-libs/clutter-1.9.16:1.0[introspection]
- >=dev-libs/folks-0.5.2
>=dev-libs/json-glib-0.13.2
>=dev-libs/libcroco-0.6.2:0.6
- >=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-2.91.91
+ >=gnome-base/gnome-desktop-3.5.1:3
+ >=gnome-base/gsettings-desktop-schemas-3.5.4
>=gnome-base/gnome-keyring-3.3.90
- >=gnome-base/gnome-menus-2.29.10:3[introspection]
+ >=gnome-base/gnome-menus-3.5.3:3[introspection]
gnome-base/libgnome-keyring
- >=gnome-extra/evolution-data-server-2.91.6
- >=media-libs/gstreamer-0.10.16:0.10
+ >=gnome-extra/evolution-data-server-3.5.3
>=media-libs/gst-plugins-base-0.10.16:0.10
>=net-im/telepathy-logger-0.2.4[introspection]
>=net-libs/telepathy-glib-0.17.5[introspection]
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-3.4.1[introspection]
+ >=x11-wm/mutter-3.5.5[introspection]
>=x11-libs/startup-notification-0.11
- app-misc/ca-certificates
dev-libs/dbus-glib
dev-libs/libxml2:2
gnome-base/librsvg
@@ -125,7 +125,6 @@ pkg_setup() {
$(use_with bluetooth)
$(use_enable networkmanager)
$(use_with systemd)
- --with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
python_set_active_version 2
python_pkg_setup
@@ -133,10 +132,10 @@ pkg_setup() {
src_prepare() {
# Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.2.1-automagic-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${PN}-3.5.x-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ epatch "${FILESDIR}/${PN}-3.5.x-networkmanager-flag.patch"
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index c31aca0..91f6214 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -24,34 +24,34 @@ else
KEYWORDS="~amd64 ~x86"
fi
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
# libXfixes-5.0 needed for pointer barriers
-COMMON_DEPEND=">=app-crypt/gcr-3.3.90[introspection]
+# TODO: gstreamer support is currently automagical:
+# gstreamer? ( >=media-libs/gstreamer-0.11.92 )
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.5.3
+ >=app-crypt/gcr-3.3.90[introspection]
>=dev-libs/glib-2.31.6:2
- >=dev-libs/gjs-1.31.22
+ >=dev-libs/gjs-1.33.2
>=dev-libs/gobject-introspection-0.10.1
>=x11-libs/gtk+-3.3.9:3[introspection]
>=media-libs/clutter-1.9.16:1.0[introspection]
- >=dev-libs/folks-0.5.2
>=dev-libs/json-glib-0.13.2
>=dev-libs/libcroco-0.6.2:0.6
- >=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-2.91.91
+ >=gnome-base/gnome-desktop-3.5.1:3
+ >=gnome-base/gsettings-desktop-schemas-3.5.4
>=gnome-base/gnome-keyring-3.3.90
- >=gnome-base/gnome-menus-2.29.10:3[introspection]
+ >=gnome-base/gnome-menus-3.5.3:3[introspection]
gnome-base/libgnome-keyring
- >=gnome-extra/evolution-data-server-2.91.6
- >=media-libs/gstreamer-0.10.16:0.10
+ >=gnome-extra/evolution-data-server-3.5.3
>=media-libs/gst-plugins-base-0.10.16:0.10
>=net-im/telepathy-logger-0.2.4[introspection]
>=net-libs/telepathy-glib-0.17.5[introspection]
>=sys-auth/polkit-0.100[introspection]
>=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-3.4.1[introspection]
+ >=x11-wm/mutter-3.5.5[introspection]
>=x11-libs/startup-notification-0.11
- app-misc/ca-certificates
dev-libs/dbus-glib
dev-libs/libxml2:2
gnome-base/librsvg
@@ -125,7 +125,6 @@ pkg_setup() {
$(use_with bluetooth)
$(use_enable networkmanager)
$(use_with systemd)
- --with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
python_set_active_version 2
python_pkg_setup
@@ -133,10 +132,10 @@ pkg_setup() {
src_prepare() {
# Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.2.1-automagic-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${PN}-3.5.x-bluetooth-flag.patch"
# Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ epatch "${FILESDIR}/${PN}-3.5.x-networkmanager-flag.patch"
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2012-05-21 6:49 Alexandre Restovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Restovtsev @ 2012-05-21 6:49 UTC (permalink / raw
To: gentoo-commits
commit: 314eec5e8cf58b7a84ca715088cbc6e119029c49
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
AuthorDate: Mon May 21 06:47:58 2012 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Mon May 21 06:48:50 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=314eec5e
gnome-base/gnome-shell: moved to gx86, sync 9999 with gx86
---
...e-shell-3.4.0-libgnome-shell-js.so-link-1.patch | 30 ---
...e-shell-3.4.0-libgnome-shell-js.so-link-2.patch | 43 -----
gnome-base/gnome-shell/gnome-shell-3.4.1.ebuild | 200 --------------------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 18 +-
4 files changed, 10 insertions(+), 281 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
deleted file mode 100644
index 9f07884..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 73f565d27166420bbf4a7bb49a30ea5bf5d98566 Mon Sep 17 00:00:00 2001
-From: "Owen W. Taylor" <otaylor@fishsoup.net>
-Date: Wed, 4 Apr 2012 17:48:47 -0400
-Subject: [PATCH] Link the gnome-shell binary to libgnome-shell-js.so
-
-Depending on the exact linker options and versions, rpath's written
-into the binary may, or may not, be honored by dlopen(). Work around
-this by simply linking the gnome-shell binary to gnome-shell-js, since
-then dlopen() doesn't need to search paths.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670477
----
- src/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 95f1a41..7bafb6a 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -187,7 +187,7 @@ libgnome_shell_la_gir_sources = \
- gnome_shell_real_SOURCES = \
- main.c
- gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
--gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
-+gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
- gnome_shell_real_DEPENDENCIES = libgnome-shell.la
-
- EXTRA_DIST += test-gapplication.js
---
-1.7.9.3
\ No newline at end of file
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
deleted file mode 100644
index 718eb30..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6fa762baaee77c9d1a8aacc758ab5c3c3c33df43 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Fri, 6 Apr 2012 14:00:48 -0400
-Subject: [PATCH] Prevent the link to libgnome-shell-js.so from being removed
-
-Add a dummy call to shell_js_add_extension_importer() to ensure that the
-link to libgnome-shell-js.so is not removed when using -Wl,--as-needed,
-which is the default on many distros.
----
- src/main.c | 13 +++++++++++++
- 1 files changed, 13 insertions(+), 0 deletions(-)
-
-diff --git a/src/main.c b/src/main.c
-index bac9524..c11c8d7 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -24,6 +24,7 @@
- #include "shell-a11y.h"
- #include "shell-global.h"
- #include "shell-global-private.h"
-+#include "shell-js.h"
- #include "shell-perf-log.h"
- #include "st.h"
-
-@@ -342,3 +343,15 @@ main (int argc, char **argv)
-
- return ecode;
- }
-+
-+/* HACK:
-+ Add a dummy function that calls into libgnome-shell-js.so to ensure it's
-+ linked to /usr/bin/gnome-shell even when linking with --as-needed.
-+ This function is never actually called.
-+ https://bugzilla.gnome.org/show_bug.cgi?id=670477
-+*/
-+
-+void _shell_link_to_shell_js(void) {
-+ shell_js_add_extension_importer (NULL, NULL, NULL, NULL);
-+}
-+
---
-1.7.8.5
-
diff --git a/gnome-base/gnome-shell/gnome-shell-3.4.1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.4.1.ebuild
deleted file mode 100644
index 8924168..0000000
--- a/gnome-base/gnome-shell/gnome-shell-3.4.1.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-PYTHON_DEPEND="2:2.5"
-
-inherit autotools eutils gnome2 multilib pax-utils python
-if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
-fi
-
-DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="+bluetooth +networkmanager"
-if [[ ${PV} = 9999 ]]; then
- KEYWORDS=""
-else
- KEYWORDS="~amd64 ~x86"
-fi
-
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
-# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
-# libXfixes-5.0 needed for pointer barriers
-COMMON_DEPEND=">=app-crypt/gcr-3.3.90
- >=dev-libs/glib-2.31.6:2
- >=dev-libs/gjs-1.31.22
- >=dev-libs/gobject-introspection-0.10.1
- >=x11-libs/gtk+-3.3.9:3[introspection]
- >=media-libs/clutter-1.9.16:1.0[introspection]
- >=dev-libs/folks-0.5.2
- >=dev-libs/json-glib-0.13.2
- >=dev-libs/libcroco-0.6.2:0.6
- >=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-2.91.91
- >=gnome-base/gnome-keyring-3.3.90
- >=gnome-base/gnome-menus-2.29.10:3[introspection]
- gnome-base/libgnome-keyring
- >=gnome-extra/evolution-data-server-2.91.6
- >=media-libs/gstreamer-0.10.16:0.10
- >=media-libs/gst-plugins-base-0.10.16:0.10
- >=net-im/telepathy-logger-0.2.4[introspection]
- >=net-libs/telepathy-glib-0.17.5[introspection]
- >=sys-auth/polkit-0.100[introspection]
- >=x11-libs/libXfixes-5.0
- >=x11-wm/mutter-3.4.1[introspection]
- >=x11-libs/startup-notification-0.11
-
- app-misc/ca-certificates
- dev-libs/dbus-glib
- dev-libs/libxml2:2
- gnome-base/librsvg
- media-libs/libcanberra
- media-libs/mesa
- media-sound/pulseaudio
- net-libs/libsoup: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.1.0[introspection] )
- networkmanager? ( >=net-misc/networkmanager-0.8.999[introspection] )
-"
-# Runtime-only deps are probably incomplete and approximate.
-# Each block:
-# 1. Pull in polkit-0.101 for pretty authorization dialogs
-# 2. Introspection stuff + dconf needed via imports.gi.*
-# 3. gnome-session is needed for gnome-session-quit
-# 4. Control shell settings
-# 5. accountsservice is needed for GdmUserManager (0.6.14 needed for fast
-# user switching with gdm-3.1.x)
-# 6. caribou needed for on-screen keyboard
-# 7. xdg-utils needed for xdg-open, used by extension tool
-# 8. gnome-icon-theme-symbolic neeed for various icons
-# 9. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c
-RDEPEND="${COMMON_DEPEND}
- >=sys-auth/polkit-0.101[introspection]
-
- >=gnome-base/dconf-0.4.1
- >=gnome-base/libgnomekbd-2.91.4[introspection]
- sys-power/upower[introspection]
-
- >=gnome-base/gnome-session-2.91.91
-
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91.92-r1
-
- >=sys-apps/accountsservice-0.6.14
-
- >=app-accessibility/caribou-0.3
-
- x11-misc/xdg-utils
-
- x11-themes/gnome-icon-theme-symbolic
-
- networkmanager? (
- net-misc/mobile-broadband-provider-info
- sys-libs/timezone-data )
-"
-DEPEND="${COMMON_DEPEND}
- >=sys-devel/gettext-0.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
-
-pkg_setup() {
- DOCS="AUTHORS NEWS README"
- # Don't error out on warnings
- G2CONF="${G2CONF}
- --enable-compile-warnings=maximum
- --disable-schemas-compile
- --disable-jhbuild-wrapper-script
- $(use_with bluetooth)
- $(use_enable networkmanager)
- --with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
- BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins
- --without-systemd"
- # TODO: systemd support
- python_set_active_version 2
- python_pkg_setup
-}
-
-src_prepare() {
- # Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-3.2.1-automagic-gnome-bluetooth.patch"
-
- # Make networkmanager optional, bug #398593
- epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
-
- # Force /usr/bin/gnome-shell to link to libgnome-shell-js; fixes extensions
- # https://bugzilla.gnome.org/show_bug.cgi?id=670477
- epatch "${FILESDIR}/${PN}-3.4.0-libgnome-shell-js.so-link"-{1,2}.patch
-
- [[ ${PV} != 9999 ]] && eautoreconf
- gnome2_src_prepare
-
- # Drop G_DISABLE_DEPRECATED for sanity on glib upgrades; bug #384765
- # Note: sed Makefile.in because it is generated from several Makefile.ams
- sed -e 's/-DG_DISABLE_DEPRECATED//g' \
- -i src/Makefile.in browser-plugin/Makefile.in || die "sed failed"
-}
-
-src_install() {
- gnome2_src_install
- python_convert_shebangs 2 "${D}"/usr/bin/gnome-shell-extension-tool
-
- # Required for gnome-shell on hardened/PaX, bug #398941
- pax-mark mr "${ED}usr/bin/gnome-shell"
-}
-
-pkg_postinst() {
- gnome2_pkg_postinst
-
- if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \
- ! has_version 'media-plugins/gst-plugins-vp8'; 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-0.10.23"
- ewarn "and media-plugins/gst-plugins-vp8, 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 use GNOME in"
- ewarn "fallback mode, or switch to open-source drivers."
- fi
-
- if has_version "media-libs/mesa[video_cards_radeon]"; 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[video_cards_intel]"; then
- elog "GNOME Shell is unstable under gallium-mode i915/i965 mesa drivers."
- elog "Make sure that classic architecture for i915 and i965 drivers is"
- elog "selected using 'eselect mesa'."
- if ! has_version "media-libs/mesa[classic]"; then
- ewarn "You will need to emerge media-libs/mesa with USE=classic."
- fi
- fi
-}
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 809c7f5..9a7b302 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -17,7 +17,7 @@ HOMEPAGE="http://live.gnome.org/GnomeShell"
LICENSE="GPL-2"
SLOT="0"
-IUSE="+bluetooth +networkmanager"
+IUSE="+bluetooth +networkmanager systemd"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
@@ -66,6 +66,7 @@ COMMON_DEPEND=">=app-crypt/gcr-3.3.90
bluetooth? ( >=net-wireless/gnome-bluetooth-3.1.0[introspection] )
networkmanager? ( >=net-misc/networkmanager-0.8.999[introspection] )
+ systemd? ( >=sys-apps/systemd-31 )
"
# Runtime-only deps are probably incomplete and approximate.
# Each block:
@@ -89,9 +90,9 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-session-2.91.91
>=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91.92-r1
+ >=gnome-base/gnome-control-center-2.91.92-r1[bluetooth(+)?]
- >=sys-apps/accountsservice-0.6.14
+ >=sys-apps/accountsservice-0.6.14[introspection]
>=app-accessibility/caribou-0.3
@@ -102,6 +103,8 @@ RDEPEND="${COMMON_DEPEND}
networkmanager? (
net-misc/mobile-broadband-provider-info
sys-libs/timezone-data )
+
+ !systemd? ( sys-auth/consolekit )
"
DEPEND="${COMMON_DEPEND}
>=sys-devel/gettext-0.17
@@ -121,10 +124,9 @@ pkg_setup() {
--disable-jhbuild-wrapper-script
$(use_with bluetooth)
$(use_enable networkmanager)
+ $(use_with systemd)
--with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
- BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins
- --without-systemd"
- # TODO: systemd support
+ BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
python_set_active_version 2
python_pkg_setup
}
@@ -147,7 +149,7 @@ src_prepare() {
src_install() {
gnome2_src_install
- python_convert_shebangs 2 "${D}"/usr/bin/gnome-shell-extension-tool
+ python_convert_shebangs 2 "${ED}/usr/bin/gnome-shell-extension-tool"
# Required for gnome-shell on hardened/PaX, bug #398941
pax-mark mr "${ED}usr/bin/gnome-shell"
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2012-04-06 18:22 Alexandre Restovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Restovtsev @ 2012-04-06 18:22 UTC (permalink / raw
To: gentoo-commits
commit: 7761a59e3e4995c132b0fd59c0e024eb89b9fc24
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 6 18:16:01 2012 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Fri Apr 6 18:16:01 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=7761a59e
gnome-base/gnome-shell: fix extension loading
Force /usr/bin/gnome-shell to link to libgnome-shell-js.so to fix
extensions; see https://bugzilla.gnome.org/show_bug.cgi?id=670477
---
...e-shell-3.4.0-libgnome-shell-js.so-link-1.patch | 30 ++++++++++++++
...e-shell-3.4.0-libgnome-shell-js.so-link-2.patch | 43 ++++++++++++++++++++
...ll-3.4.0.ebuild => gnome-shell-3.4.0-r1.ebuild} | 4 ++
3 files changed, 77 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
new file mode 100644
index 0000000..9f07884
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-1.patch
@@ -0,0 +1,30 @@
+From 73f565d27166420bbf4a7bb49a30ea5bf5d98566 Mon Sep 17 00:00:00 2001
+From: "Owen W. Taylor" <otaylor@fishsoup.net>
+Date: Wed, 4 Apr 2012 17:48:47 -0400
+Subject: [PATCH] Link the gnome-shell binary to libgnome-shell-js.so
+
+Depending on the exact linker options and versions, rpath's written
+into the binary may, or may not, be honored by dlopen(). Work around
+this by simply linking the gnome-shell binary to gnome-shell-js, since
+then dlopen() doesn't need to search paths.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=670477
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 95f1a41..7bafb6a 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -187,7 +187,7 @@ libgnome_shell_la_gir_sources = \
+ gnome_shell_real_SOURCES = \
+ main.c
+ gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
+-gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
++gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
+ gnome_shell_real_DEPENDENCIES = libgnome-shell.la
+
+ EXTRA_DIST += test-gapplication.js
+--
+1.7.9.3
\ No newline at end of file
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
new file mode 100644
index 0000000..718eb30
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-libgnome-shell-js.so-link-2.patch
@@ -0,0 +1,43 @@
+From 6fa762baaee77c9d1a8aacc758ab5c3c3c33df43 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Fri, 6 Apr 2012 14:00:48 -0400
+Subject: [PATCH] Prevent the link to libgnome-shell-js.so from being removed
+
+Add a dummy call to shell_js_add_extension_importer() to ensure that the
+link to libgnome-shell-js.so is not removed when using -Wl,--as-needed,
+which is the default on many distros.
+---
+ src/main.c | 13 +++++++++++++
+ 1 files changed, 13 insertions(+), 0 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index bac9524..c11c8d7 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -24,6 +24,7 @@
+ #include "shell-a11y.h"
+ #include "shell-global.h"
+ #include "shell-global-private.h"
++#include "shell-js.h"
+ #include "shell-perf-log.h"
+ #include "st.h"
+
+@@ -342,3 +343,15 @@ main (int argc, char **argv)
+
+ return ecode;
+ }
++
++/* HACK:
++ Add a dummy function that calls into libgnome-shell-js.so to ensure it's
++ linked to /usr/bin/gnome-shell even when linking with --as-needed.
++ This function is never actually called.
++ https://bugzilla.gnome.org/show_bug.cgi?id=670477
++*/
++
++void _shell_link_to_shell_js(void) {
++ shell_js_add_extension_importer (NULL, NULL, NULL, NULL);
++}
++
+--
+1.7.8.5
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild b/gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
similarity index 96%
rename from gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
index e653998..666e6b7 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.4.0-r1.ebuild
@@ -135,6 +135,10 @@ src_prepare() {
# Make networkmanager optional, bug #398593
epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ # Force /usr/bin/gnome-shell to link to libgnome-shell-js; fixes extensions
+ # https://bugzilla.gnome.org/show_bug.cgi?id=670477
+ epatch "${FILESDIR}/${PN}-3.4.0-libgnome-shell-js.so-link"-{1,2}.patch
+
[[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2012-04-03 6:36 Alexandre Restovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Restovtsev @ 2012-04-03 6:36 UTC (permalink / raw
To: gentoo-commits
commit: 28ca58306aa5a5b22e860e93d46fcef1326adc72
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 3 06:09:08 2012 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Tue Apr 3 06:34:59 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=28ca5830
gnome-base/gnome-shell: 3.3.92 → 3.4.0 + optional bt and nm patches
---
...ome-shell-3.2.1-automagic-gnome-bluetooth.patch | 44 ++++
...gnome-shell-3.4.0-optional-networkmanager.patch | 220 ++++++++++++++++++++
...hell-3.3.92.ebuild => gnome-shell-3.4.0.ebuild} | 30 +--
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 30 +--
4 files changed, 288 insertions(+), 36 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch b/gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch
new file mode 100644
index 0000000..ae23a6c
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.2.1-automagic-gnome-bluetooth.patch
@@ -0,0 +1,44 @@
+From 84568fa9454f279ff519a2a11174e112786e46db Mon Sep 17 00:00:00 2001
+From: root <admin@catmur.co.uk>
+Date: Sun, 8 Jan 2012 13:55:05 +0000
+Subject: [PATCH] Fix automagic gnome-bluetooth dependency
+
+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 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1c64122..a699838 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -127,6 +127,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
+ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 0.1.7)
+
+ 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`
+@@ -138,6 +140,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 libedataserverui-3.0 >= $LIBEDATASERVERUI_MIN_VERSION gio-2.0)
+ AC_SUBST(CALENDAR_SERVER_CFLAGS)
+--
+1.7.8.2
+
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch
new file mode 100644
index 0000000..ee9d0af
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.4.0-optional-networkmanager.patch
@@ -0,0 +1,220 @@
+From 411d751935c9bdc485b113678284edf0cc9e545e 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/main.js | 8 ++++++--
+ js/ui/panel.js | 3 ++-
+ src/Makefile.am | 17 ++++++++++++-----
+ 6 files changed, 69 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c6ad636..f228ebd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -94,9 +94,42 @@ 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)
+
++##########################
++# 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)
+@@ -289,3 +322,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 e7751cc..5eb4c18 100644
+--- a/js/Makefile.am
++++ b/js/Makefile.am
+@@ -8,6 +8,7 @@ misc/config.js: misc/config.js.in Makefile
+ -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
+ -e "s|[@]GJS_VERSION@|$(GJS_VERSION)|g" \
+ -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
++ -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
+ -e "s|[@]SHELL_SYSTEM_CA_FILE@|$(SHELL_SYSTEM_CA_FILE)|g" \
+ -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
+ -e "s|[@]datadir@|$(datadir)|g" \
+diff --git a/js/misc/config.js.in b/js/misc/config.js.in
+index 4a0db16..3df3394 100644
+--- a/js/misc/config.js.in
++++ b/js/misc/config.js.in
+@@ -8,6 +8,8 @@ const PACKAGE_VERSION = '@PACKAGE_VERSION@';
+ const GJS_VERSION = '@GJS_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@;
+ /* The system TLS CA list */
+ const SHELL_SYSTEM_CA_FILE = '@SHELL_SYSTEM_CA_FILE@';
+ /* gettext package */
+diff --git a/js/ui/main.js b/js/ui/main.js
+index ac9330c..7ca91ee 100644
+--- a/js/ui/main.js
++++ b/js/ui/main.js
+@@ -12,6 +12,7 @@ const St = imports.gi.St;
+
+ const AutomountManager = imports.ui.automountManager;
+ const AutorunManager = imports.ui.autorunManager;
++const Config = imports.misc.config;
+ const CtrlAltTab = imports.ui.ctrlAltTab;
+ const EndSessionDialog = imports.ui.endSessionDialog;
+ const PolkitAuthenticationAgent = imports.ui.polkitAuthenticationAgent;
+@@ -26,7 +27,7 @@ const PlaceDisplay = imports.ui.placeDisplay;
+ const RunDialog = imports.ui.runDialog;
+ const Layout = imports.ui.layout;
+ const LookingGlass = imports.ui.lookingGlass;
+-const NetworkAgent = imports.ui.networkAgent;
++const NetworkAgent = Config.HAVE_NETWORKMANAGER ? imports.ui.networkAgent : null;
+ const NotificationDaemon = imports.ui.notificationDaemon;
+ const WindowAttentionHandler = imports.ui.windowAttentionHandler;
+ const Scripting = imports.ui.scripting;
+@@ -85,7 +86,10 @@ function _createUserSession() {
+ telepathyClient = new TelepathyClient.Client();
+ automountManager = new AutomountManager.AutomountManager();
+ autorunManager = new AutorunManager.AutorunManager();
+- networkAgent = new NetworkAgent.NetworkAgent();
++ if (Config.HAVE_NETWORKMANAGER) {
++ networkAgent = new NetworkAgent.NetworkAgent();
++ }
++
+ }
+
+ function _createGDMSession() {
+diff --git a/js/ui/panel.js b/js/ui/panel.js
+index 329f118..865ce05 100644
+--- a/js/ui/panel.js
++++ b/js/ui/panel.js
+@@ -45,7 +45,8 @@ if (Config.HAVE_BLUETOOTH)
+ STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['bluetooth'] = imports.ui.status.bluetooth.Indicator;
+
+ try {
+- STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
++ if (Config.HAVE_NETWORKMANAGER)
++ STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
+ } catch(e) {
+ log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
+ }
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 95f1a41..637455e 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -110,9 +110,7 @@ shell_public_headers_h = \
+ shell-gtk-embed.h \
+ shell-global.h \
+ shell-idle-monitor.h \
+- shell-mobile-providers.h \
+ shell-mount-operation.h \
+- shell-network-agent.h \
+ shell-perf-log.h \
+ shell-screenshot.h \
+ shell-screen-grabber.h \
+@@ -134,6 +132,10 @@ shell_private_sources = \
+ gactionobserver.h \
+ gactionobserver.c
+
++if HAVE_NETWORKMANAGER
++shell_public_headers_h += shell-mobile-providers.h shell-network-agent.h
++endif
++
+ libgnome_shell_la_SOURCES = \
+ $(shell_built_sources) \
+ $(shell_public_headers_h) \
+@@ -159,9 +161,7 @@ libgnome_shell_la_SOURCES = \
+ shell-idle-monitor.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 \
+@@ -181,6 +181,10 @@ libgnome_shell_la_SOURCES = \
+ $(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 Folks-0.6
++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 Folks-0.6
++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.8.5
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.3.92.ebuild b/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
similarity index 89%
rename from gnome-base/gnome-shell/gnome-shell-3.3.92.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
index 1fc49c6..e653998 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.3.92.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.4.0.ebuild
@@ -17,9 +17,7 @@ HOMEPAGE="http://live.gnome.org/GnomeShell"
LICENSE="GPL-2"
SLOT="0"
-# TODO: reinstate this
-#IUSE="+bluetooth +networkmanager"
-IUSE=""
+IUSE="+bluetooth +networkmanager"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
@@ -41,6 +39,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.31.6:2
>=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-base/gnome-keyring-3.3.90
>=gnome-base/gnome-menus-2.29.10:3[introspection]
+ gnome-base/libgnome-keyring
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16:0.10
>=media-libs/gst-plugins-base-0.10.16:0.10
@@ -64,14 +63,9 @@ COMMON_DEPEND=">=dev-libs/glib-2.31.6:2
x11-libs/pango[introspection]
x11-apps/mesa-progs
- >=net-wireless/gnome-bluetooth-3.1.0[introspection]
- gnome-base/libgnome-keyring
- >=net-misc/networkmanager-0.8.999[introspection]
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.1.0[introspection] )
+ networkmanager? ( >=net-misc/networkmanager-0.8.999[introspection] )
"
-# bluetooth? ( >=net-wireless/gnome-bluetooth-3.1.0[introspection] )
-# networkmanager? (
-# gnome-base/libgnome-keyring
-# >=net-misc/networkmanager-0.8.999[introspection] )"
# Runtime-only deps are probably incomplete and approximate.
# Each block:
# 1. Pull in polkit-0.101 for pretty authorization dialogs
@@ -104,12 +98,10 @@ RDEPEND="${COMMON_DEPEND}
x11-themes/gnome-icon-theme-symbolic
- net-misc/mobile-broadband-provider-info
- sys-libs/timezone-data
+ networkmanager? (
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
"
-# networkmanager? (
-# net-misc/mobile-broadband-provider-info
-# sys-libs/timezone-data )"
DEPEND="${COMMON_DEPEND}
>=sys-devel/gettext-0.17
>=dev-util/pkgconfig-0.22
@@ -126,6 +118,8 @@ pkg_setup() {
--enable-compile-warnings=maximum
--disable-schemas-compile
--disable-jhbuild-wrapper-script
+ $(use_with bluetooth)
+ $(use_enable networkmanager)
--with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins
--without-systemd"
@@ -136,12 +130,12 @@ pkg_setup() {
src_prepare() {
# Fix automagic gnome-bluetooth dep, bug #398145
- #epatch "${FILESDIR}/${PN}-3.4.0-automagic-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${PN}-3.2.1-automagic-gnome-bluetooth.patch"
# Make networkmanager optional, bug #398593
- #epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
- #[[ ${PV} != 9999 ]] && eautoreconf
+ [[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
# Drop G_DISABLE_DEPRECATED for sanity on glib upgrades; bug #384765
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 1fc49c6..e653998 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -17,9 +17,7 @@ HOMEPAGE="http://live.gnome.org/GnomeShell"
LICENSE="GPL-2"
SLOT="0"
-# TODO: reinstate this
-#IUSE="+bluetooth +networkmanager"
-IUSE=""
+IUSE="+bluetooth +networkmanager"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
@@ -41,6 +39,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.31.6:2
>=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-base/gnome-keyring-3.3.90
>=gnome-base/gnome-menus-2.29.10:3[introspection]
+ gnome-base/libgnome-keyring
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16:0.10
>=media-libs/gst-plugins-base-0.10.16:0.10
@@ -64,14 +63,9 @@ COMMON_DEPEND=">=dev-libs/glib-2.31.6:2
x11-libs/pango[introspection]
x11-apps/mesa-progs
- >=net-wireless/gnome-bluetooth-3.1.0[introspection]
- gnome-base/libgnome-keyring
- >=net-misc/networkmanager-0.8.999[introspection]
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.1.0[introspection] )
+ networkmanager? ( >=net-misc/networkmanager-0.8.999[introspection] )
"
-# bluetooth? ( >=net-wireless/gnome-bluetooth-3.1.0[introspection] )
-# networkmanager? (
-# gnome-base/libgnome-keyring
-# >=net-misc/networkmanager-0.8.999[introspection] )"
# Runtime-only deps are probably incomplete and approximate.
# Each block:
# 1. Pull in polkit-0.101 for pretty authorization dialogs
@@ -104,12 +98,10 @@ RDEPEND="${COMMON_DEPEND}
x11-themes/gnome-icon-theme-symbolic
- net-misc/mobile-broadband-provider-info
- sys-libs/timezone-data
+ networkmanager? (
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
"
-# networkmanager? (
-# net-misc/mobile-broadband-provider-info
-# sys-libs/timezone-data )"
DEPEND="${COMMON_DEPEND}
>=sys-devel/gettext-0.17
>=dev-util/pkgconfig-0.22
@@ -126,6 +118,8 @@ pkg_setup() {
--enable-compile-warnings=maximum
--disable-schemas-compile
--disable-jhbuild-wrapper-script
+ $(use_with bluetooth)
+ $(use_enable networkmanager)
--with-ca-certificates=${EPREFIX}/etc/ssl/certs/ca-certificates.crt
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins
--without-systemd"
@@ -136,12 +130,12 @@ pkg_setup() {
src_prepare() {
# Fix automagic gnome-bluetooth dep, bug #398145
- #epatch "${FILESDIR}/${PN}-3.4.0-automagic-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${PN}-3.2.1-automagic-gnome-bluetooth.patch"
# Make networkmanager optional, bug #398593
- #epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
+ epatch "${FILESDIR}/${PN}-3.4.0-optional-networkmanager.patch"
- #[[ ${PV} != 9999 ]] && eautoreconf
+ [[ ${PV} != 9999 ]] && eautoreconf
gnome2_src_prepare
# Drop G_DISABLE_DEPRECATED for sanity on glib upgrades; bug #384765
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-11-02 2:36 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-11-02 2:36 UTC (permalink / raw
To: gentoo-commits
commit: be703172149a11b0c17f77676171bfb3d58301f4
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 2 02:35:55 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Nov 2 02:35:55 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=be703172
gnome-base/gnome-shell: theme fixes for message tray chat bubbles
---
...ighten-up-the-sent-message-color-clean-up.patch | 49 ++++++++++++++++++++
...2-messageTray-Reduce-the-scroll-view-fade.patch | 40 ++++++++++++++++
...ll-3.2.1.ebuild => gnome-shell-3.2.1-r1.ebuild} | 4 ++
3 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gnome-shell/files/0001-theme-Lighten-up-the-sent-message-color-clean-up.patch b/gnome-base/gnome-shell/files/0001-theme-Lighten-up-the-sent-message-color-clean-up.patch
new file mode 100644
index 0000000..55052b7
--- /dev/null
+++ b/gnome-base/gnome-shell/files/0001-theme-Lighten-up-the-sent-message-color-clean-up.patch
@@ -0,0 +1,49 @@
+From 3294a6e1a7d7a6bea1cb02ec671aaa0d350b57f5 Mon Sep 17 00:00:00 2001
+From: Jasper St. Pierre <jstpierre@mecheye.net>
+Date: Fri, 2 Sep 2011 16:01:24 -0400
+Subject: [PATCH 1/2] theme: Lighten up the sent message color, clean up
+
+Properly apply "received" style and drop unused border-radius styles
+now that the messages have no background color
+
+https://bugzilla.gnome.org/show_bug.cgi?id=658096
+---
+ data/theme/gnome-shell.css | 7 ++-----
+ 1 files changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
+index 4487159..0e09866 100644
+--- a/data/theme/gnome-shell.css
++++ b/data/theme/gnome-shell.css
+@@ -1329,9 +1329,8 @@ StTooltip StLabel {
+ padding: 8px 0;
+ }
+
+-.chat-sent {
++.chat-received {
+ padding-left: 4px;
+- border-radius: 4px;
+ }
+
+ .chat-received:rtl {
+@@ -1341,8 +1340,7 @@ StTooltip StLabel {
+
+ .chat-sent {
+ padding-left: 18pt;
+- border-radius: 4px;
+- color: #7E7E7E;
++ color: #959595;
+ }
+
+ .chat-sent:rtl {
+@@ -1352,7 +1350,6 @@ StTooltip StLabel {
+
+ .chat-meta-message {
+ padding-left: 4px;
+- border-radius: 4px;
+ font-size: 9pt;
+ color: #bbbbbb;
+ }
+--
+1.7.3.4
+
diff --git a/gnome-base/gnome-shell/files/0002-messageTray-Reduce-the-scroll-view-fade.patch b/gnome-base/gnome-shell/files/0002-messageTray-Reduce-the-scroll-view-fade.patch
new file mode 100644
index 0000000..22a4ce3
--- /dev/null
+++ b/gnome-base/gnome-shell/files/0002-messageTray-Reduce-the-scroll-view-fade.patch
@@ -0,0 +1,40 @@
+From 18541c447e30154e7bd5806e11e3fe70fb9d5887 Mon Sep 17 00:00:00 2001
+From: Jasper St. Pierre <jstpierre@mecheye.net>
+Date: Thu, 27 Oct 2011 13:52:17 -0400
+Subject: [PATCH 2/2] messageTray: Reduce the scroll view fade
+
+https://bugzilla.gnome.org/show_bug.cgi?id=662226
+---
+ data/theme/gnome-shell.css | 1 +
+ js/ui/messageTray.js | 3 +--
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
+index 0e09866..ea81870 100644
+--- a/data/theme/gnome-shell.css
++++ b/data/theme/gnome-shell.css
+@@ -1217,6 +1217,7 @@ StTooltip StLabel {
+
+ #notification-scrollview {
+ max-height: 10em;
++ -st-vfade-offset: 24px;
+ }
+
+ #notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow {
+diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
+index 75eb9f9..ca12fb1 100644
+--- a/js/ui/messageTray.js
++++ b/js/ui/messageTray.js
+@@ -597,8 +597,7 @@ Notification.prototype = {
+ this._table.add_style_class_name('multi-line-notification');
+ this._scrollArea = new St.ScrollView({ name: 'notification-scrollview',
+ vscrollbar_policy: this._scrollPolicy,
+- hscrollbar_policy: Gtk.PolicyType.NEVER,
+- style_class: 'vfade' });
++ hscrollbar_policy: Gtk.PolicyType.NEVER });
+ this._table.add(this._scrollArea, { row: 1,
+ col: 2 });
+ this._updateLastColumnSettings();
+--
+1.7.3.4
+
diff --git a/gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.2.1-r1.ebuild
similarity index 95%
rename from gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.2.1-r1.ebuild
index d264034..603e49f 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.2.1-r1.ebuild
@@ -119,6 +119,10 @@ src_prepare() {
# Note: sed Makefile.in because it is generated from several Makefile.ams
sed -e 's/-DG_DISABLE_DEPRECATED//g' \
-i src/Makefile.in browser-plugin/Makefile.in || die "sed failed"
+
+ # Two chat messageTray fixes taken from git master, not in gnome-3-2 yet
+ epatch "${FILESDIR}"/0001-theme-Lighten-up-the-sent-message-color-clean-up.patch
+ epatch "${FILESDIR}"/0002-messageTray-Reduce-the-scroll-view-fade.patch
}
src_install() {
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-10-18 7:37 Alexandre Restovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Restovtsev @ 2011-10-18 7:37 UTC (permalink / raw
To: gentoo-commits
commit: f9b47fc92d247f68563922453aa33409b36eb927
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Tue Oct 18 05:24:18 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Tue Oct 18 05:24:18 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=f9b47fc9
gnome-base/gnome-shell: 3.2.0 → 3.2.1
Bump with numerous fixes and improvements. Patches were applied
upstream. Update mutter dependency.
Also, drop gnome-shell-3.1.4 since it is compatible neither with
gnome-3.0 nor with 3.2, and since gnome-shell-extensions-3.2 have been
released.
---
.../files/gnome-shell-3.1.4-gi-1.29.17.patch | 82 -------------
...gnome-shell-3.2.0-boxpointer-multimonitor.patch | 81 ------------
.../gnome-shell-3.2.0-recorder-coglhandle.patch | 41 ------
...2.0-st-texture-cache-non-serialized-icons.patch | 47 -------
gnome-base/gnome-shell/gnome-shell-3.1.4.ebuild | 129 --------------------
...ll-3.2.0-r1.ebuild => gnome-shell-3.2.1.ebuild} | 15 +--
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 2 +-
7 files changed, 3 insertions(+), 394 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.1.4-gi-1.29.17.patch b/gnome-base/gnome-shell/files/gnome-shell-3.1.4-gi-1.29.17.patch
deleted file mode 100644
index 6aebc44..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.1.4-gi-1.29.17.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 92d0cce50c9baac2a24d840b1db39f2627a02480 Mon Sep 17 00:00:00 2001
-From: Dan Winship <danw@gnome.org>
-Date: Tue, 30 Aug 2011 12:07:11 -0400
-Subject: [PATCH] Add some (element-type) annotations to appease g-i master
-
-[Alexandre Rostovtsev <tetromino@gmail.com>: backport to 3.1.4]
----
- src/gvc/gvc-mixer-card.c | 9 +++++++++
- src/gvc/gvc-mixer-stream.c | 9 +++++++++
- src/shell-app-system.c | 2 +-
- 3 files changed, 19 insertions(+), 1 deletions(-)
-
-diff --git a/src/gvc/gvc-mixer-card.c b/src/gvc/gvc-mixer-card.c
-index 56502e3..168bc79 100644
---- a/src/gvc/gvc-mixer-card.c
-+++ b/src/gvc/gvc-mixer-card.c
-@@ -263,6 +263,11 @@ gvc_mixer_card_change_profile (GvcMixerCard *card,
- return TRUE;
- }
-
-+/**
-+ * gvc_mixer_card_get_profiles:
-+ *
-+ * Return value: (transfer none) (element-type GvcMixerCardProfile):
-+ */
- const GList *
- gvc_mixer_card_get_profiles (GvcMixerCard *card)
- {
-@@ -281,6 +286,10 @@ sort_profiles (GvcMixerCardProfile *a,
- return -1;
- }
-
-+/**
-+ * gvc_mixer_card_set_profiles:
-+ * @profiles: (transfer full) (element-type GvcMixerCardProfile):
-+ */
- gboolean
- gvc_mixer_card_set_profiles (GvcMixerCard *card,
- GList *profiles)
-diff --git a/src/gvc/gvc-mixer-stream.c b/src/gvc/gvc-mixer-stream.c
-index 78de6b3..f35954a 100644
---- a/src/gvc/gvc-mixer-stream.c
-+++ b/src/gvc/gvc-mixer-stream.c
-@@ -508,6 +508,11 @@ gvc_mixer_stream_change_port (GvcMixerStream *stream,
- return GVC_MIXER_STREAM_GET_CLASS (stream)->change_port (stream, port);
- }
-
-+/**
-+ * gvc_mixer_stream_get_ports:
-+ *
-+ * Return value: (transfer none) (element-type GvcMixerStreamPort):
-+ */
- const GList *
- gvc_mixer_stream_get_ports (GvcMixerStream *stream)
- {
-@@ -526,6 +531,10 @@ sort_ports (GvcMixerStreamPort *a,
- return -1;
- }
-
-+/**
-+ * gvc_mixer_stream_set_ports:
-+ * @ports: (transfer full) (element-type GvcMixerStreamPort):
-+ */
- gboolean
- gvc_mixer_stream_set_ports (GvcMixerStream *stream,
- GList *ports)
-diff --git a/src/shell-app-system.c b/src/shell-app-system.c
-index b52625a..a578e69 100644
---- a/src/shell-app-system.c
-+++ b/src/shell-app-system.c
-@@ -1399,7 +1399,7 @@ _gather_pid_callback (GDesktopAppInfo *gapp,
- /**
- * shell_app_info_launch_full:
- * @timestamp: Event timestamp, or 0 for current event timestamp
-- * @uris: List of uris to pass to application
-+ * @uris: (element-type utf8): List of uris to pass to application
- * @workspace: Start on this workspace, or -1 for default
- * @startup_id: (out): Returned startup notification ID, or %NULL if none
- * @error: A #GError
---
-1.7.6.1
-
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-boxpointer-multimonitor.patch b/gnome-base/gnome-shell/files/gnome-shell-3.2.0-boxpointer-multimonitor.patch
deleted file mode 100644
index 4d8497c..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-boxpointer-multimonitor.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 7a8a189c483b48de581c490a44d69030ba7a6923 Mon Sep 17 00:00:00 2001
-From: Jasper St. Pierre <jstpierre@mecheye.net>
-Date: Thu, 22 Sep 2011 19:52:58 +0000
-Subject: boxpointer: Don't constrain box pointer to primary monitor
-
-A boxPointer should be able to be attached to any actor, not just ones on the
-primary monitor. Assume that the sourceActor doesn't straddle monitors, and
-constrain the boxPointer to the monitor the sourceActor is on.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=659861
----
-diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js
-index 1523ef6..979e2d1 100644
---- a/js/ui/boxpointer.js
-+++ b/js/ui/boxpointer.js
-@@ -329,7 +329,7 @@ BoxPointer.prototype = {
- // We also want to keep it onscreen, and separated from the
- // edge by the same distance as the main part of the box is
- // separated from its sourceActor
-- let primary = Main.layoutManager.primaryMonitor;
-+ let monitor = Main.layoutManager.findMonitorForActor(sourceActor);
- let themeNode = this.actor.get_theme_node();
- let borderWidth = themeNode.get_length('-arrow-border-width');
- let arrowBase = themeNode.get_length('-arrow-base');
-@@ -364,8 +364,8 @@ BoxPointer.prototype = {
- case St.Side.BOTTOM:
- resX = sourceCenterX - (halfMargin + (natWidth - margin) * alignment);
-
-- resX = Math.max(resX, primary.x + 10);
-- resX = Math.min(resX, primary.x + primary.width - (10 + natWidth));
-+ resX = Math.max(resX, monitor.x + 10);
-+ resX = Math.min(resX, monitor.x + monitor.width - (10 + natWidth));
- this.setArrowOrigin(sourceCenterX - resX);
- break;
-
-@@ -373,8 +373,8 @@ BoxPointer.prototype = {
- case St.Side.RIGHT:
- resY = sourceCenterY - (halfMargin + (natHeight - margin) * alignment);
-
-- resY = Math.max(resY, primary.y + 10);
-- resY = Math.min(resY, primary.y + primary.height - (10 + natHeight));
-+ resY = Math.max(resY, monitor.y + 10);
-+ resY = Math.min(resY, monitor.y + monitor.height - (10 + natHeight));
-
- this.setArrowOrigin(sourceCenterY - resY);
- break;
-diff --git a/js/ui/layout.js b/js/ui/layout.js
-index d473ae0..f21fcca 100644
---- a/js/ui/layout.js
-+++ b/js/ui/layout.js
-@@ -369,6 +369,10 @@ LayoutManager.prototype = {
- // Removes @actor from the chrome
- removeChrome: function(actor) {
- this._chrome.removeActor(actor);
-+ },
-+
-+ findMonitorForActor: function(actor) {
-+ return this._chrome.findMonitorForActor(actor);
- }
- };
- Signals.addSignalMethods(LayoutManager.prototype);
-@@ -700,7 +704,7 @@ Chrome.prototype = {
- else if (this._inOverview)
- visible = true;
- else if (!actorData.visibleInFullscreen &&
-- this._findMonitorForActor(actorData.actor).inFullscreen)
-+ this.findMonitorForActor(actorData.actor).inFullscreen)
- visible = false;
- else
- visible = true;
-@@ -762,7 +766,7 @@ Chrome.prototype = {
-
- // This call guarantees that we return some monitor to simplify usage of it
- // In practice all tracked actors should be visible on some monitor anyway
-- _findMonitorForActor: function(actor) {
-+ findMonitorForActor: function(actor) {
- let [x, y] = actor.get_transformed_position();
- let [w, h] = actor.get_transformed_size();
- let monitor = this._findMonitorForRect(x, y, w, h);
---
-cgit v0.9.0.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-recorder-coglhandle.patch b/gnome-base/gnome-shell/files/gnome-shell-3.2.0-recorder-coglhandle.patch
deleted file mode 100644
index c9d3f41..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-recorder-coglhandle.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 4e9e91fdce7b887bc2fea99b36b6fad4a5cea2c6 Mon Sep 17 00:00:00 2001
-From: Florian Müllner <fmuellner@gnome.org>
-Date: Wed, 21 Sep 2011 22:58:08 +0000
-Subject: recorder: Use CoglHandle instead of CoglHandle*
-
-The latter has always been wrong and should have been fixed a
-while ago, but somehow we overlooked shell-recorder.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=659822
----
-diff --git a/src/shell-recorder.c b/src/shell-recorder.c
-index 9df14d3..a624389 100644
---- a/src/shell-recorder.c
-+++ b/src/shell-recorder.c
-@@ -54,7 +54,7 @@ struct _ShellRecorder {
- gboolean have_xfixes;
- int xfixes_event_base;
-
-- CoglHandle *recording_icon; /* icon shown while playing */
-+ CoglHandle recording_icon; /* icon shown while playing */
-
- cairo_surface_t *cursor_image;
- int cursor_hot_x;
-@@ -160,13 +160,13 @@ G_DEFINE_TYPE(ShellRecorder, shell_recorder, G_TYPE_OBJECT);
- * recording. The emblem is drawn *after* we record the frame so doesn't
- * show up in the frame.
- */
--static CoglHandle *
-+static CoglHandle
- create_recording_icon (void)
- {
- cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 32, 32);
- cairo_t *cr;
- cairo_pattern_t *pat;
-- CoglHandle *texture;
-+ CoglHandle texture;
-
- cr = cairo_create (surface);
-
---
-cgit v0.9.0.2
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-st-texture-cache-non-serialized-icons.patch b/gnome-base/gnome-shell/files/gnome-shell-3.2.0-st-texture-cache-non-serialized-icons.patch
deleted file mode 100644
index 73b51da..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-3.2.0-st-texture-cache-non-serialized-icons.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From e49a595f54b14d681ad01c8da1886ff659080e10 Mon Sep 17 00:00:00 2001
-From: Florian Müllner <fmuellner@gnome.org>
-Date: Fri, 30 Sep 2011 17:57:09 +0000
-Subject: st-texture-cache: Don't cache GIcons which cannot be serialized
-
-For GIcons we use g_icon_to_string() in the key, but the function
-will return NULL if the icon cannot be serialized. As a result,
-all non-serializable GIcons of the same size end up with the same
-cache key - an example for this are contacts with avatars, which
-currently all end up with the same image.
-To fix, opt out of caching for GIcons which cannot be serialized.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=660585
----
-diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c
-index 24471bc..1e83a0d 100644
---- a/src/st/st-texture-cache.c
-+++ b/src/st/st-texture-cache.c
-@@ -1177,8 +1177,15 @@ load_gicon_with_colors (StTextureCache *cache,
- char *key;
- GtkIconTheme *theme;
- GtkIconInfo *info;
-+ StTextureCachePolicy policy;
-
- gicon_string = g_icon_to_string (icon);
-+ /* A return value of NULL indicates that the icon can not be serialized,
-+ * so don't have a unique identifier for it as a cache key, and thus can't
-+ * be cached. If it is cachable, we hardcode a policy of FOREVER here for
-+ * now; we should actually blow this away on icon theme changes probably */
-+ policy = gicon_string != NULL ? ST_TEXTURE_CACHE_POLICY_FOREVER
-+ : ST_TEXTURE_CACHE_POLICY_NONE;
- if (colors)
- {
- /* This raises some doubts about the practice of using string keys */
-@@ -1210,9 +1217,7 @@ load_gicon_with_colors (StTextureCache *cache,
- {
- /* Transfer ownership of key */
- request->key = key;
-- /* hardcoded here for now; we should actually blow this away on
-- * icon theme changes probably */
-- request->policy = ST_TEXTURE_CACHE_POLICY_FOREVER;
-+ request->policy = policy;
- request->icon = g_object_ref (icon);
- request->icon_info = info;
- request->width = request->height = size;
---
-cgit v0.9.0.2
diff --git a/gnome-base/gnome-shell/gnome-shell-3.1.4.ebuild b/gnome-base/gnome-shell/gnome-shell-3.1.4.ebuild
deleted file mode 100644
index d0c4ba3..0000000
--- a/gnome-base/gnome-shell/gnome-shell-3.1.4.ebuild
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="3"
-GNOME_TARBALL_SUFFIX="xz"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-PYTHON_DEPEND="2:2.5"
-
-inherit gnome2 python
-if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
-fi
-
-DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="+nm-applet"
-if [[ ${PV} = 9999 ]]; then
- KEYWORDS=""
-else
- KEYWORDS="~amd64 ~x86"
-fi
-
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
-# FIXME: Automagic gnome-bluetooth[introspection] support.
-# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
-# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
-# libXfixes-5.0 needed for pointer barriers
-COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
- >=dev-libs/gjs-1.29.15
- >=dev-libs/gobject-introspection-0.10.1
- x11-libs/gdk-pixbuf:2[introspection]
- >=x11-libs/gtk+-3.0.0:3[introspection]
- >=media-libs/clutter-1.7.5:1.0[introspection]
- >=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-2.91.91
- >=gnome-extra/evolution-data-server-2.91.6
- >=media-libs/gstreamer-0.10.16:0.10
- >=media-libs/gst-plugins-base-0.10.16:0.10
- >=net-im/telepathy-logger-0.2.4[introspection]
- net-libs/libsoup:2.4[introspection]
- >=net-libs/telepathy-glib-0.15.3[introspection]
- >=net-wireless/gnome-bluetooth-3.1.0[introspection]
- >=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-3.0.0[introspection]
-
- dev-libs/dbus-glib
- dev-libs/libxml2:2
- x11-libs/pango[introspection]
- >=dev-libs/libcroco-0.6.2:0.6
-
- gnome-base/gconf:2[introspection]
- gnome-base/gnome-menus
- gnome-base/librsvg
- media-libs/libcanberra
- media-sound/pulseaudio
-
- >=x11-libs/startup-notification-0.11
- x11-libs/libX11
- >=x11-libs/libXfixes-5.0
- x11-apps/mesa-progs"
-# Runtime-only deps are probably incomplete and approximate.
-# Each block:
-# 1. Pull in polkit-0.101 for pretty authorization dialogs
-# 2. Introspection stuff + dconf needed via imports.gi.*
-# 3. gnome-session is needed for gnome-session-quit
-# 4. Control shell settings
-# 5. accountsservice is needed for GdmUserManager
-# 6. nm-applet is needed for auth prompting and the wireless connection dialog
-RDEPEND="${COMMON_DEPEND}
- >=sys-auth/polkit-0.101[introspection]
-
- >=gnome-base/dconf-0.4.1
- >=gnome-base/libgnomekbd-2.91.4[introspection]
- sys-power/upower[introspection]
-
- >=gnome-base/gnome-session-2.91.91
-
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91.92-r1
-
- >=sys-apps/accountsservice-0.6.12
-
- nm-applet? (
- >=gnome-extra/nm-applet-0.8.999
- >=net-misc/networkmanager-0.8.999[introspection] )"
-DEPEND="${COMMON_DEPEND}
- >=sys-devel/gettext-0.17
- >=dev-util/pkgconfig-0.22
- >=dev-util/intltool-0.40
- gnome-base/gnome-common
- !!=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
-
-pkg_setup() {
- DOCS="AUTHORS README"
- # Don't error out on warnings
- G2CONF="${G2CONF}
- --enable-compile-warnings=maximum
- --disable-schemas-compile
- --disable-jhbuild-wrapper-script"
-}
-
-src_prepare() {
- gnome2_src_prepare
- # gobject-introspection-1.29.17 compat, backported to gnome-shell-3.1.4
- epatch "${FILESDIR}/${P}-gi-1.29.17.patch"
-}
-
-src_install() {
- gnome2_src_install
- python_convert_shebangs 2 "${D}"/usr/bin/gnome-shell-extension-tool
-}
-
-pkg_postinst() {
- gnome2_pkg_postinst
- if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \
- ! has_version 'media-plugins/gst-plugins-vp8'; 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-0.10.23"
- ewarn "and media-plugins/gst-plugins-vp8, or use dconf-editor to change"
- ewarn "apps.gnome-shell.recorder/pipeline to what you want to use."
- fi
-}
diff --git a/gnome-base/gnome-shell/gnome-shell-3.2.0-r1.ebuild b/gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild
similarity index 89%
rename from gnome-base/gnome-shell/gnome-shell-3.2.0-r1.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild
index 186d8e6..1fe076b 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.2.0-r1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.2.1.ebuild
@@ -8,7 +8,7 @@ GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
PYTHON_DEPEND="2:2.5"
-inherit eutils gnome2 python
+inherit gnome2 python
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
@@ -51,7 +51,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=net-misc/networkmanager-0.8.999[introspection]
>=net-wireless/gnome-bluetooth-3.1.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-3.0.0[introspection]
+ >=x11-wm/mutter-3.2.1[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -113,20 +113,9 @@ pkg_setup() {
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
}
-src_prepare() {
- gnome2_src_prepare
- # Fix recording; will be in next release
- epatch "${FILESDIR}/${P}-recorder-coglhandle.patch"
- # Fix multimonitor behavior; will be in next release
- epatch "${FILESDIR}/${P}-boxpointer-multimonitor.patch"
- # Fix different icons being cached identically; will be in next release
- epatch "${FILESDIR}/${P}-st-texture-cache-non-serialized-icons.patch"
-}
-
src_install() {
gnome2_src_install
python_convert_shebangs 2 "${D}"/usr/bin/gnome-shell-extension-tool
-
}
pkg_postinst() {
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 3aaed7a..1fe076b 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -51,7 +51,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=net-misc/networkmanager-0.8.999[introspection]
>=net-wireless/gnome-bluetooth-3.1.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-3.0.0[introspection]
+ >=x11-wm/mutter-3.2.1[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-08-27 2:08 Alexandre Restovtsev
0 siblings, 0 replies; 25+ messages in thread
From: Alexandre Restovtsev @ 2011-08-27 2:08 UTC (permalink / raw
To: gentoo-commits
commit: 0bcd359b6b83516c55bf14a0d8ae2ffecf04f935
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Sat Aug 27 02:04:28 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Sat Aug 27 02:07:48 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=0bcd359b
gnome-base/gnome-shell: 3.0.2 → 3.0.2-r1
Add a patch from upstream git master that prevents gnome-shell from
clobbering extensions' styles. Makes shell extensions look tremendously
better. See https://bugzilla.gnome.org/show_bug.cgi?id=650971
---
.../gnome-shell-3.0.2-unbreak-extension-css.patch | 93 ++++++++++++++++++++
...ll-3.0.2.ebuild => gnome-shell-3.0.2-r1.ebuild} | 4 +
2 files changed, 97 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.0.2-unbreak-extension-css.patch b/gnome-base/gnome-shell/files/gnome-shell-3.0.2-unbreak-extension-css.patch
new file mode 100644
index 0000000..75c6aee
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.0.2-unbreak-extension-css.patch
@@ -0,0 +1,93 @@
+From 2674d96e547b27ed5c377804c1059bdfd926086e Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna@src.gnome.org>
+Date: Thu, 02 Jun 2011 15:05:08 +0000
+Subject: StTheme: retrive the list of custom stylesheets and use it in loadTheme()
+
+Using the list of stylesheets loaded with st_theme_load_stylesheet(),
+one can build an StTheme that is completely identical to the previous
+one, except for one property (application-stylesheet).
+This allows rt and the user-theme extension to work while respecting
+the theming of other extensions.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=650971
+---
+diff --git a/js/ui/main.js b/js/ui/main.js
+index 1d27b4c..c0f4845 100644
+--- a/js/ui/main.js
++++ b/js/ui/main.js
+@@ -393,12 +393,21 @@ function setThemeStylesheet(cssStylesheet)
+ */
+ function loadTheme() {
+ let themeContext = St.ThemeContext.get_for_stage (global.stage);
++ let previousTheme = themeContext.get_theme();
+
+ let cssStylesheet = _defaultCssStylesheet;
+ if (_cssStylesheet != null)
+ cssStylesheet = _cssStylesheet;
+
+ let theme = new St.Theme ({ application_stylesheet: cssStylesheet });
++
++ if (previousTheme) {
++ let customStylesheets = previousTheme.get_custom_stylesheets();
++
++ for (let i = 0; i < customStylesheets.length; i++)
++ theme.load_stylesheet(customStylesheets[i]);
++ }
++
+ themeContext.set_theme (theme);
+ }
+
+diff --git a/src/st/st-theme.c b/src/st/st-theme.c
+index 326d9de..2058e32 100644
+--- a/src/st/st-theme.c
++++ b/src/st/st-theme.c
+@@ -256,6 +256,30 @@ st_theme_unload_stylesheet (StTheme *theme,
+ cr_stylesheet_unref (stylesheet);
+ }
+
++/**
++ * st_theme_get_custom_stylesheets:
++ * @theme: an #StTheme
++ *
++ * Returns: (transfer full) (element-type utf8): the list of stylesheet filenames
++ * that were loaded with st_theme_load_stylesheet()
++ */
++GSList*
++st_theme_get_custom_stylesheets (StTheme *theme)
++{
++ GSList *result = NULL;
++ GSList *iter;
++
++ for (iter = theme->custom_stylesheets; iter; iter = iter->next)
++ {
++ CRStyleSheet *stylesheet = iter->data;
++ gchar *filename = g_hash_table_lookup (theme->filenames_by_stylesheet, stylesheet);
++
++ result = g_slist_prepend (result, g_strdup (filename));
++ }
++
++ return result;
++}
++
+ static GObject *
+ st_theme_constructor (GType type,
+ guint n_construct_properties,
+diff --git a/src/st/st-theme.h b/src/st/st-theme.h
+index 003c2a7..0a044bf 100644
+--- a/src/st/st-theme.h
++++ b/src/st/st-theme.h
+@@ -51,9 +51,9 @@ StTheme *st_theme_new (const char *application_stylesheet,
+ const char *theme_stylesheet,
+ const char *default_stylesheet);
+
+-gboolean st_theme_load_stylesheet (StTheme *theme, const char *path, GError **error);
+-
+-void st_theme_unload_stylesheet (StTheme *theme, const char *path);
++gboolean st_theme_load_stylesheet (StTheme *theme, const char *path, GError **error);
++void st_theme_unload_stylesheet (StTheme *theme, const char *path);
++GSList *st_theme_get_custom_stylesheets (StTheme *theme);
+
+ G_END_DECLS
+
+--
+cgit v0.9.0.2
diff --git a/gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.0.2-r1.ebuild
similarity index 96%
rename from gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.0.2-r1.ebuild
index 63532c6..d14bd64 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.0.2-r1.ebuild
@@ -108,6 +108,10 @@ src_prepare() {
# https://bugzilla.gnome.org/show_bug.cgi?id=647893
# can trigger the crash even with accountsservice-0.6.12
epatch "${FILESDIR}/${PN}-3.0.2-user-removed-signals.patch"
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=650971
+ # Don't clobber extensions' styles
+ epatch "${FILESDIR}/${PN}-3.0.2-unbreak-extension-css.patch"
gnome2_src_prepare
}
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-06-02 14:43 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-06-02 14:43 UTC (permalink / raw
To: gentoo-commits
commit: ae871665493d7dbd965a703d3958ffc786c8e17f
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Sun May 29 21:17:35 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Thu Jun 2 14:07:45 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ae871665
gnome-base/gnome-shell: 3.0.1-r2 → 3.0.2
Version bump with lots of bugs fixed, memory leaks plugged, and
networkmanager support improved. Tarball of patches no longer needed
(0001-0006 were applied upstream; 0007 replaced with updated
gnome-shell-3.0.2-user-removed-signals.patch). Update networkmanager
dependencies to 0.8.999. Add accountsservice runtime dependency (needed
for GdmUserManager).
Signed-off-by: Nirbheek Chauhan <nirbheek <AT> gentoo.org>
---
.../gnome-shell-3.0.2-user-removed-signals.patch | 33 ++++++++++++++++++++
...ll-3.0.1-r2.ebuild => gnome-shell-3.0.2.ebuild} | 17 ++++++----
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 9 +++--
3 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-3.0.2-user-removed-signals.patch b/gnome-base/gnome-shell/files/gnome-shell-3.0.2-user-removed-signals.patch
new file mode 100644
index 0000000..adae1f0
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-3.0.2-user-removed-signals.patch
@@ -0,0 +1,33 @@
+From 9a7f3dbd2030a5e1b54297f1aa7cf228eccafb27 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Tue, 24 May 2011 22:15:10 -0400
+Subject: [PATCH] gdm: ignore user-removed signals for untracked users
+
+If we don't know about a user, we don't care if it goes away,
+and we shouldn't try to remove it from the book keeping.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=647893
+---
+ src/gdmuser/gdm-user-manager.c | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/src/gdmuser/gdm-user-manager.c b/src/gdmuser/gdm-user-manager.c
+index e7ca833..561be32 100644
+--- a/src/gdmuser/gdm-user-manager.c
++++ b/src/gdmuser/gdm-user-manager.c
+@@ -887,6 +887,13 @@ on_user_removed_in_accounts_service (DBusGProxy *proxy,
+
+ user = g_hash_table_lookup (manager->priv->users_by_object_path, object_path);
+
++ if (user == NULL) {
++ g_debug ("GdmUserManager: ignoring untracked user %s", object_path);
++ return;
++ } else {
++ g_debug ("GdmUserManager: tracked user %s removed from accounts service", object_path);
++ }
++
+ manager->priv->new_users = g_slist_remove (manager->priv->new_users, user);
+
+ remove_user (manager, user);
+--
+1.7.5.1
\ No newline at end of file
diff --git a/gnome-base/gnome-shell/gnome-shell-3.0.1-r2.ebuild b/gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild
similarity index 88%
rename from gnome-base/gnome-shell/gnome-shell-3.0.1-r2.ebuild
rename to gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild
index 195ff41..c442b19 100644
--- a/gnome-base/gnome-shell/gnome-shell-3.0.1-r2.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-3.0.2.ebuild
@@ -7,15 +7,13 @@ GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
PYTHON_DEPEND="2:2.5"
-inherit gnome2
+inherit eutils gnome2
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
HOMEPAGE="http://live.gnome.org/GnomeShell"
-SRC_URI="${SRC_URI}
- mirror://gentoo/${P}-patches-0.1.tar.xz"
LICENSE="GPL-2"
SLOT="0"
@@ -68,7 +66,8 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
# 2. Introspection stuff + dconf needed via imports.gi.*
# 3. gnome-session is needed for gnome-session-quit
# 4. Control shell settings
-# 5. nm-applet is needed for auth prompting and the wireless connection dialog
+# 5. accountsservice is needed for GdmUserManager
+# 6. nm-applet is needed for auth prompting and the wireless connection dialog
RDEPEND="${COMMON_DEPEND}
>=sys-auth/polkit-0.101[introspection]
@@ -81,9 +80,11 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-settings-daemon-2.91
>=gnome-base/gnome-control-center-2.91.92-r1
+ >=sys-apps/accountsservice-0.6.12
+
nm-applet? (
- >=gnome-extra/nm-applet-0.8.997
- >=net-misc/networkmanager-0.8.997[introspection] )"
+ >=gnome-extra/nm-applet-0.8.999
+ >=net-misc/networkmanager-0.8.999[introspection] )"
DEPEND="${COMMON_DEPEND}
sys-devel/gettext
>=dev-util/pkgconfig-0.22
@@ -103,7 +104,9 @@ pkg_setup() {
}
src_prepare() {
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}"
+ # https://bugzilla.gnome.org/show_bug.cgi?id=647893
+ # can trigger the crash even with accountsservice-0.6.12
+ epatch "${FILESDIR}/${PN}-3.0.2-user-removed-signals.patch"
gnome2_src_prepare
}
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index ba5b1b5..10ac892 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -66,7 +66,8 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
# 2. Introspection stuff + dconf needed via imports.gi.*
# 3. gnome-session is needed for gnome-session-quit
# 4. Control shell settings
-# 5. nm-applet is needed for auth prompting and the wireless connection dialog
+# 5. accountsservice is needed for GdmUserManager
+# 6. nm-applet is needed for auth prompting and the wireless connection dialog
RDEPEND="${COMMON_DEPEND}
>=sys-auth/polkit-0.101[introspection]
@@ -79,9 +80,11 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-settings-daemon-2.91
>=gnome-base/gnome-control-center-2.91.92-r1
+ >=sys-apps/accountsservice-0.6.12
+
nm-applet? (
- >=gnome-extra/nm-applet-0.8.997
- >=net-misc/networkmanager-0.8.997[introspection] )"
+ >=gnome-extra/nm-applet-0.8.999
+ >=net-misc/networkmanager-0.8.999[introspection] )"
DEPEND="${COMMON_DEPEND}
sys-devel/gettext
>=dev-util/pkgconfig-0.22
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-29 8:36 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-29 8:36 UTC (permalink / raw
To: gentoo-commits
commit: ca6673d0fbbcf9053b251f5618d9904d335171ec
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 29 08:00:21 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue Mar 29 08:35:25 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ca6673d0
gnome-base/gnome-shell: 2.91.92 → 2.91.93
---
.../files/gnome-shell-fix-gnome-bluetooth.patch | 20 --------------------
...l-2.91.92.ebuild => gnome-shell-2.91.93.ebuild} | 12 +-----------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 12 +-----------
3 files changed, 2 insertions(+), 42 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-fix-gnome-bluetooth.patch b/gnome-base/gnome-shell/files/gnome-shell-fix-gnome-bluetooth.patch
deleted file mode 100644
index 3a6e994..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-fix-gnome-bluetooth.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/main.c
-+++ src/main.c
-@@ -458,3 +458,17 @@ main (int argc, char **argv)
-
- return meta_run ();
- }
-+
-+#if HAVE_BLUETOOTH
-+/* HACK:
-+ Add a non-static function that calls into libgnome-bluetooth-applet.so,
-+ to avoid the linker being too smart and removing the dependency.
-+ This function is never actually called.
-+*/
-+extern GType bluetooth_applet_get_type(void);
-+void _shell_link_to_bluetooth(void);
-+
-+void _shell_link_to_bluetooth(void) {
-+ bluetooth_applet_get_type();
-+}
-+#endif
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.93.ebuild
similarity index 90%
rename from gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild
rename to gnome-base/gnome-shell/gnome-shell-2.91.93.ebuild
index ca39314..b31d84a 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.93.ebuild
@@ -23,7 +23,6 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support.
-# latest mutter is needed due to commit 474ff2e9 and commit 079953c3
# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
@@ -41,7 +40,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.91.1[introspection]
+ >=x11-wm/mutter-2.91.93[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -93,15 +92,6 @@ G2CONF="--enable-compile-warnings=maximum
--disable-schemas-compile
--disable-jhbuild-wrapper-script"
-src_prepare() {
- epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
-
- # https://bugzilla.gnome.org/show_bug.cgi?id=645063
- sed -e 's/settings.menu/gnomecc.menu/g' -i src/shell-app-system.c || die
-
- gnome2_src_prepare
-}
-
pkg_postinst() {
gnome2_pkg_postinst
if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index ca39314..b31d84a 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -23,7 +23,6 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support.
-# latest mutter is needed due to commit 474ff2e9 and commit 079953c3
# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
@@ -41,7 +40,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.91.1[introspection]
+ >=x11-wm/mutter-2.91.93[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -93,15 +92,6 @@ G2CONF="--enable-compile-warnings=maximum
--disable-schemas-compile
--disable-jhbuild-wrapper-script"
-src_prepare() {
- epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
-
- # https://bugzilla.gnome.org/show_bug.cgi?id=645063
- sed -e 's/settings.menu/gnomecc.menu/g' -i src/shell-app-system.c || die
-
- gnome2_src_prepare
-}
-
pkg_postinst() {
gnome2_pkg_postinst
if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-23 5:20 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-23 5:20 UTC (permalink / raw
To: gentoo-commits
commit: 94507d969053ae386770a097cc9b149dd910d3b7
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 04:08:34 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 04:59:57 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=94507d96
gnome-base/gnome-shell: 2.91.91 → 2.91.92
---
.../files/gnome-shell-2.91.91-fix-build.patch | 23 -------------
....91.91-r1.ebuild => gnome-shell-2.91.92.ebuild} | 35 +++++++++++++-------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 3 +-
3 files changed, 25 insertions(+), 36 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch b/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch
deleted file mode 100644
index c54eb10..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 49f6280645cdad7fa7f53633ce67ed5f7079a8dd Mon Sep 17 00:00:00 2001
-From: Dan Winship <danw@gnome.org>
-Date: Tue, 08 Mar 2011 16:47:14 +0000
-Subject: src: add more stuff to gnome_shell_real_LDADD
-
-to work with libtools that are more strict about not allowing
-transitive dependencies
----
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 40ce5de..1c3e1b6 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -140,7 +140,7 @@ libgnome_shell_la_gir_sources = \
- gnome_shell_real_SOURCES = \
- main.c
- gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
--gnome_shell_real_LDADD = libgnome-shell.la
-+gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
- gnome_shell_real_DEPENDENCIES = libgnome-shell.la
-
- ########################################
---
-cgit v0.8.3.4
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.91-r1.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild
similarity index 72%
rename from gnome-base/gnome-shell/gnome-shell-2.91.91-r1.ebuild
rename to gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild
index a83050c..7e7c889 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.91-r1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.92.ebuild
@@ -6,14 +6,14 @@ EAPI="2"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
-inherit autotools eutils gnome2
+inherit gnome2
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
HOMEPAGE="http://live.gnome.org/GnomeShell"
LICENSE="GPL-2"
SLOT="0"
-IUSE=""
+IUSE="+nm-applet"
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
KEYWORDS=""
@@ -23,22 +23,25 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support.
+# latest mutter is needed due to commit 474ff2e9 and commit 079953c3
# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
-COMMON_DEPEND=">=dev-libs/glib-2.25.9
+# latest gnome-menus is needed due to https://bugzilla.gnome.org/show_bug.cgi?id=645063#c4
+COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=dev-libs/gjs-0.7.11
>=dev-libs/gobject-introspection-0.10.1
x11-libs/gdk-pixbuf:2[introspection]
>=x11-libs/gtk+-3.0.0:3[introspection]
- >=media-libs/clutter-1.5.15[introspection]
+ >=media-libs/clutter-1.5.15:1.0[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
>=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
>=media-libs/gst-plugins-base-0.10.16
+ >=net-im/telepathy-logger-0.2.4[introspection]
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.91[introspection]
+ >=x11-wm/mutter-2.91.91.1[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -56,11 +59,13 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
x11-apps/mesa-progs"
# Runtime-only deps are probably incomplete and approximate.
# Each block:
-# 1. Introspection stuff + dconf needed via imports.gi.*
-# 2. gnome-session is needed for gnome-session-quit
-# 3. Don't remember
-# 4. nm-applet is needed for auth prompting and the wireless connection dialog
+# 1. Pull in polkit-0.101 for pretty authorization dialogs
+# 2. Introspection stuff + dconf needed via imports.gi.*
+# 3. gnome-session is needed for gnome-session-quit
+# 4. Control shell settings
+# 5. nm-applet is needed for auth prompting and the wireless connection dialog
RDEPEND="${COMMON_DEPEND}
+ >=sys-auth/polkit-0.101[introspection]
>=gnome-base/dconf-0.4.1
>=gnome-base/libgnomekbd-2.91.4[introspection]
@@ -69,7 +74,11 @@ RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-session-2.91.91
>=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91"
+ >=gnome-base/gnome-control-center-2.91
+
+ nm-applet? (
+ >=gnome-extra/nm-applet-0.8.996
+ >=net-misc/networkmanager-0.8.996-r1[introspection] )"
DEPEND="${COMMON_DEPEND}
sys-devel/gettext
>=dev-util/pkgconfig-0.22
@@ -83,8 +92,10 @@ G2CONF="--enable-compile-warnings=maximum
src_prepare() {
epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
- epatch "${FILESDIR}/${P}-fix-build.patch"
- eautoreconf
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=645063
+ sed -e 's/settings.menu/gnomecc.menu/g' -i src/shell-app-system.c || die
+
gnome2_src_prepare
}
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 6ba5622..746de21 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -25,6 +25,7 @@ fi
# FIXME: Automagic gnome-bluetooth[introspection] support.
# latest mutter is needed due to commit 474ff2e9 and commit 079953c3
# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
+# latest gnome-menus is needed due to https://bugzilla.gnome.org/show_bug.cgi?id=645063#c4
COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=dev-libs/gjs-0.7.11
>=dev-libs/gobject-introspection-0.10.1
@@ -32,6 +33,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=x11-libs/gtk+-3.0.0:3[introspection]
>=media-libs/clutter-1.5.15:1.0[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
+ >=gnome-base/gnome-menus-2.91.91-r1
>=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
@@ -48,7 +50,6 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
dev-libs/libcroco:0.6
gnome-base/gconf[introspection]
- gnome-base/gnome-menus
gnome-base/librsvg
media-libs/libcanberra
media-sound/pulseaudio
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-15 13:08 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-15 13:08 UTC (permalink / raw
To: gentoo-commits
commit: cea097bc38229ab72bfd32fd6ea8b2161304c63f
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 15 12:03:41 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue Mar 15 12:03:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=cea097bc
gnome-base/gnome-shell: update nm-applet patch
---
...> gnome-shell-experimental-nm-applet-1.5.patch} | 1489 +++++++++++++++++---
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 9 +-
2 files changed, 1332 insertions(+), 166 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.5.patch
similarity index 65%
rename from gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch
rename to gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.5.patch
index 35891ab..d32aca4 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.5.patch
@@ -1,4 +1,4 @@
-From 8a361b46917b8a371c79e9ea0d9ce2520110c5a3 Mon Sep 17 00:00:00 2001
+From 1bf9b9694338ba917db07d2bf75146dba6a80054 Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Tue, 25 Jan 2011 22:08:12 +0100
Subject: [PATCH] Status area: add NetworkManager indicator
@@ -16,19 +16,25 @@ https://bugzilla.gnome.org/show_bug.cgi?id=621707
---
data/theme/gnome-shell.css | 8 +
js/Makefile.am | 2 +
- js/misc/modemManager.js | 127 +++
- js/ui/panel.js | 3 +-
- js/ui/status/network.js | 2028 +++++++++++++++++++++++++++++++++++++++
+ js/misc/modemManager.js | 219 +++++
+ js/misc/util.js | 80 ++
+ js/ui/panel.js | 7 +
+ js/ui/status/network.js | 2048 +++++++++++++++++++++++++++++++++++++++
+ src/Makefile.am | 5 +-
+ src/shell-mobile-providers.c | 816 ++++++++++++++++
+ src/shell-mobile-providers.h | 96 ++
tools/build/gnome-shell.modules | 17 +
- 6 files changed, 2184 insertions(+), 1 deletions(-)
+ 10 files changed, 3297 insertions(+), 1 deletions(-)
create mode 100644 js/misc/modemManager.js
create mode 100644 js/ui/status/network.js
+ create mode 100644 src/shell-mobile-providers.c
+ create mode 100644 src/shell-mobile-providers.h
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
-index 4fd303a..06ef4b2 100644
+index 7d9f011..5d7eea2 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
-@@ -158,6 +158,14 @@ StTooltip StLabel {
+@@ -160,6 +160,14 @@ StTooltip StLabel {
spacing: .5em;
}
@@ -65,13 +71,15 @@ index 55bb111..a085bfc 100644
ui/status/bluetooth.js \
diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js
new file mode 100644
-index 0000000..d019d50
+index 0000000..5b2754b
--- /dev/null
+++ b/js/misc/modemManager.js
-@@ -0,0 +1,127 @@
+@@ -0,0 +1,219 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
++
+const DBus = imports.dbus;
+const Lang = imports.lang;
++const Shell = imports.gi.Shell;
+const Signals = imports.signals;
+
+// The following are not the complete interfaces, just the methods we need
@@ -105,6 +113,78 @@ index 0000000..d019d50
+};
+const ModemCdmaProxy = DBus.makeProxyClass(ModemCdmaInterface);
+
++let _providersTable;
++function _getProvidersTable() {
++ if (_providersTable)
++ return _providersTable;
++ let [providers, countryCodes] = Shell.mobile_providers_parse();
++ return _providersTable = providers;
++}
++
++function _findProviderForMCCMNC(needle) {
++ let table = _getProvidersTable();
++ let needlemcc = needle.substring(0, 3);
++ let needlemnc = needle.substring(3, needle.length);
++
++ let name2, name3;
++ for (let iter in table) {
++ let providers = table[value];
++
++ /* Search through each country's providers */
++ for (let i = 0; i < providers.length; i++) {
++ let provider = providers[i];
++
++ /* Search through MCC/MNC list */
++ let list = provider.get_gsm_mcc_mnc();
++ for (let j = 0; j < list.length; j++) {
++ let mccmnc = list[j];
++
++ /* Match both 2-digit and 3-digit MNC; prefer a
++ * 3-digit match if found, otherwise a 2-digit one.
++ */
++ if (mccmnc.mcc != needlemcc)
++ continue; /* MCC was wrong */
++
++ if (!name3 && needle.length == 6 && needlemnc == mccmnc.mnc)
++ name3 = provider.name;
++
++ if (!name2 && needlemnc.substring(0, 2) == mcc.mnc.substring(0, 2))
++ name2 = provider.name;
++
++ if (name2 && name3)
++ break;
++ }
++ }
++ }
++
++ return name3 || name2 || null;
++}
++
++function _findProviderForSid(sid) {
++ if (sid == 0)
++ return null;
++
++ let table = _getProvidersTable();
++
++ /* Search through each country */
++ for (let iter in table) {
++ let providers = table[iter];
++
++ /* Search through each country's providers */
++ for (let i = 0; i < providers.length; i++) {
++ let provider = providers[i];
++ let cdma_sid = provider.get_cdma_sid();
++
++ /* Search through CDMA SID list */
++ for (let j = 0; j < cdma_sid.length; j++) {
++ if (cmda_sid[j] == sid)
++ return provider.name;
++ }
++ }
++ }
++
++ return null;
++}
+
+function ModemGsm() {
+ this._init.apply(this, arguments);
@@ -123,10 +203,7 @@ index 0000000..d019d50
+ this.emit('notify::signal-quality');
+ }));
+ this._proxy.connect('RegistrationInfo', Lang.bind(this, function(proxy, status, code, name) {
-+ if (name.length > 0)
-+ this.operator_name = name;
-+ else
-+ this.operator_name = null;
++ this.operator_name = this._findOperatorName(name, code);
+ this.emit('notify::operator-name');
+ }));
+ this._proxy.GetRegistrationInfoRemote(Lang.bind(this, function(result, err) {
@@ -136,22 +213,36 @@ index 0000000..d019d50
+ }
+
+ let [status, code, name] = result;
-+ if (name.length > 0)
-+ this.operator_name = name;
-+ else
-+ this.operator_name = null;
++ this.operator_name = this._findOperatorName(name, code);
+ this.emit('notify::operator-name');
+ }));
+ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(result, err) {
+ if (err) {
+ // it will return an error if the device is not connected
-+ return;
++ this.signal_quality = 0;
++ } else {
++ let [quality] = result;
++ this.signal_quality = quality;
+ }
-+
-+ let [quality] = result;
-+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
+ }));
++ },
++
++ _findOperatorName: function(name, opCode) {
++ if (name.length != 0 && (name.length > 6 || name.length < 5)) {
++ // this looks like a valid name, i.e. not an MCCMNC (that some
++ // devices return when not yet connected
++ return name;
++ }
++ let needle;
++ if (name.length == 0 && opCode)
++ needle = opCode;
++ else if (name.length == 6 || name.length == 5)
++ needle = name;
++ else // nothing to search
++ return null;
++
++ return _findProviderForMCCMNC(needle);
+ }
+}
+Signals.addSignalMethods(ModemGsm.prototype);
@@ -169,53 +260,153 @@ index 0000000..d019d50
+ this._proxy.connect('SignalQuality', Lang.bind(this, function(quality) {
+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
++
++ // receiving this signal means the device got activated
++ // and we can finally call GetServingSystem
++ if (this.operator_name == null)
++ this._refreshServingSystem();
+ }));
+ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(result, err) {
+ if (err) {
+ // it will return an error if the device is not connected
-+ return;
++ this.signal_quality = 0;
++ } else {
++ let [quality] = result;
++ this.signal_quality = quality;
+ }
-+ let [quality] = result;
-+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
+ }));
++ },
++ _refreshServingSystem: function() {
+ this._proxy.GetServingSystemRemote(Lang.bind(this, function(result, err) {
+ if (err) {
+ // it will return an error if the device is not connected
-+ return;
-+ }
-+
-+ let [bandClass, band, id] = result;
-+ if (name.length > 0)
-+ // FIXME: the applet has a mapping of ids to names
-+ this.operator_name = 'Mystery CDMA Provider ' + id;
-+ else
+ this.operator_name = null;
++ } else {
++ let [bandClass, band, id] = result;
++ if (name.length > 0)
++ this.operator_name = _findProviderForSid(id);
++ else
++ this.operator_name = null;
++ }
+ this.emit('notify::operator-name');
+ }));
+ }
+};
+Signals.addSignalMethods(ModemCdma.prototype);
+diff --git a/js/misc/util.js b/js/misc/util.js
+index e2ec2c1..ab430c8 100644
+--- a/js/misc/util.js
++++ b/js/misc/util.js
+@@ -178,3 +178,83 @@ function killall(processName) {
+ logError(e, 'Failed to kill ' + processName);
+ }
+ }
++
++// This was ported from network-manager-applet
++// Copyright 2007 - 2011 Red Hat, Inc.
++// Author: Dan Williams <dcbw@redhat.com>
++
++const _IGNORED_WORDS = [
++ 'Semiconductor',
++ 'Components',
++ 'Corporation',
++ 'Communications',
++ 'Company',
++ 'Corp.',
++ 'Corp',
++ 'Co.',
++ 'Inc.',
++ 'Inc',
++ 'Incorporated',
++ 'Ltd.',
++ 'Limited.',
++ 'Intel?',
++ 'chipset',
++ 'adapter',
++ '[hex]',
++ 'NDIS',
++ 'Module'
++];
++
++const _IGNORED_PHRASES = [
++ 'Multiprotocol MAC/baseband processor',
++ 'Wireless LAN Controller',
++ 'Wireless LAN Adapter',
++ 'Wireless Adapter',
++ 'Network Connection',
++ 'Wireless Cardbus Adapter',
++ 'Wireless CardBus Adapter',
++ '54 Mbps Wireless PC Card',
++ 'Wireless PC Card',
++ 'Wireless PC',
++ 'PC Card with XJACK(r) Antenna',
++ 'Wireless cardbus',
++ 'Wireless LAN PC Card',
++ 'Technology Group Ltd.',
++ 'Communication S.p.A.',
++ 'Business Mobile Networks BV',
++ 'Mobile Broadband Minicard Composite Device',
++ 'Mobile Communications AB',
++ '(PC-Suite Mode)'
++];
++
++function fixupPCIDescription(desc) {
++ desc.replace('[_,]', ' ');
++
++ /* Attempt to shorten ID by ignoring certain phrases */
++ for (let i = 0; i < _IGNORED_PHRASES.length; i++) {
++ let item = _IGNORED_PHRASES[i];
++ let pos = desc.indexOf(item);
++ if (pos != -1) {
++ let before = desc.substring(0, pos);
++ let after = desc.substring(pos + item.length, desc.length);
++ desc = before + after;
++ }
++ }
++
++ /* Attmept to shorten ID by ignoring certain individual words */
++ let words = desc.split(' ');
++ let out = '';
++ for (let i = 0; i < words; i++) {
++ let item = words[i];
++
++ // skip empty items (that come out from consecutive spaces)
++ if (item.length == 0)
++ continue;
++
++ if (_IGNORED_WORDS.indexOf(item) == -1) {
++ out += ' ' + item;
++ }
++ }
++
++ return out;
++}
+\ No newline at end of file
diff --git a/js/ui/panel.js b/js/ui/panel.js
-index c08c3e8..abe0fe2 100644
+index c08c3e8..adcd148 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
-@@ -41,7 +41,8 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
- 'a11y': imports.ui.status.accessibility.ATIndicator,
- 'volume': imports.ui.status.volume.Indicator,
- 'battery': imports.ui.status.power.Indicator,
-- 'keyboard': imports.ui.status.keyboard.XKBIndicator
-+ 'keyboard': imports.ui.status.keyboard.XKBIndicator,
-+ 'network': imports.ui.status.network.NMApplet
- };
-
+@@ -47,6 +47,13 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
if (Config.HAVE_BLUETOOTH)
+ STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = imports.ui.status.bluetooth.Indicator;
+
++try {
++ STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['network'] = imports.ui.status.network.NMApplet;
++} catch(e) {
++ STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['network'] = undefined;
++ log('NMApplet is not supported. It is possible that your NetworkManager version is too old');
++}
++
+ // To make sure the panel corners blend nicely with the panel,
+ // we draw background and borders the same way, e.g. drawing
+ // them as filled shapes from the outside inwards instead of
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
new file mode 100644
-index 0000000..0e2d483
+index 0000000..ac8e3d0
--- /dev/null
+++ b/js/ui/status/network.js
-@@ -0,0 +1,2028 @@
+@@ -0,0 +1,2048 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+const ByteArray = imports.byteArray;
+const DBus = imports.dbus;
@@ -246,6 +437,10 @@ index 0000000..0e2d483
+ VPN: 'vpn'
+};
+
++// small optimization, to avoid using [] all the time
++const NM80211Mode = NetworkManager['80211Mode'];
++const NM80211ApFlags = NetworkManager['80211ApFlags'];
++
+function macToArray(string) {
+ return string.split(':').map(function(el) {
+ return parseInt(el, 16);
@@ -261,6 +456,8 @@ index 0000000..0e2d483
+}
+
+function ssidCompare(one, two) {
++ if (!one || !two)
++ return false;
+ if (one.length != two.length)
+ return false;
+ for (let i = 0; i < one.length; i++) {
@@ -284,16 +481,54 @@ index 0000000..0e2d483
+}
+
+// shared between NMNetworkMenuItem and NMDeviceWireless
++function getApSecurityType(accessPoint) {
++ // XXX: have this checked by someone familiar with IEEE 802.1x
++
++ let flags = accessPoint.flags;
++ let wpa_flags = accessPoint.wpa_flags;
++ let rsn_flags = accessPoint.rsn_flags;
++ if ( !(flags & NM80211ApFlags.PRIVACY)
++ && (wpa_flags == NM80211ApSecurityFlags.NONE)
++ && (rsn_flags == NM80211ApSecurityFlags.NONE))
++ return 0;
++ else if ( (flags & NM80211ApFlags.PRIVACY)
++ && (wpa_flags == NM80211ApSecurityFlags.NONE)
++ && (rsn_flags == NM80211ApSecurityFlags.NONE))
++ return 1;
++ else if ( !(flags & NM80211ApFlags.PRIVACY)
++ && (wpa_flags != NM80211ApSecurity.NONE)
++ && (rsn_flags != NM80211ApSecurity.NONE))
++ return 2;
++ else
++ return 3;
++}
++
+function sortAccessPoints(accessPoints) {
+ return accessPoints.sort(function (one, two) {
-+ if (one.flags != two.flags) {
-+ // sort secure access point before open ones
-+ return one.flags & NetworkManager['80211ApFlags'].PRIVACY ? -1 : 1;
-+ }
+ return two.strength - one.strength;
+ });
+}
+
++function getDeviceDescription(device) {
++ let dev_product = device.get_product();
++ let dev_vendor = device.get_vendor();
++ if (!dev_product || !dev_vendor)
++ return null;
++
++ let product = Util.fixupPCIDescription(dev_product);
++ let vendor = Util.fixupPCIDescription(dev_vendor);
++ let out = '';
++
++ /* Another quick hack; if all of the fixed up vendor string
++ * is found in product, ignore the vendor.
++ */
++ if (product.indexOf(vendor) == -1)
++ out += vendor + ' ';
++ out += product;
++
++ return out;
++}
++
+function NMNetworkMenuItem() {
+ this._init.apply(this, arguments);
+}
@@ -380,7 +615,7 @@ index 0000000..0e2d483
+ });
+ this.addActor(this._descriptionLabel);
+
-+ this._statusBin = new St.Bin();
++ this._statusBin = new St.Bin({ x_align: St.Align.END });
+ this.addActor(this._statusBin, { align: St.Align.END });
+
+ this._statusLabel = new St.Label({ text: '',
@@ -441,7 +676,7 @@ index 0000000..0e2d483
+ NMDeviceTitleMenuItem.prototype.activate.call(this, event);
+
+ if (!this._device) {
-+ log ('Section title activated when there is more than one device, should be non reactive');
++ log('Section title activated when there is more than one device, should be non reactive');
+ return;
+ }
+
@@ -488,7 +723,6 @@ index 0000000..0e2d483
+ activate: function(event) {
+ NMDeviceTitleMenuItem.prototype.activate.call(this, event);
+
-+ log ('setting enabled property, is ' + this._switch.state);
+ this._client[this._setEnabledFunc](this._switch.state);
+ },
+
@@ -511,7 +745,7 @@ index 0000000..0e2d483
+}
+
+NMDevice.prototype = {
-+ _init: function(client, device, connections, activeConnectionPosition) {
++ _init: function(client, device, connections) {
+ this.device = device;
+ if (device) {
+ this.device._delegate = this;
@@ -544,9 +778,6 @@ index 0000000..0e2d483
+ this._autoConnectionItem = null;
+ this._onlyOfCategory = false;
+
-+ // private
-+ this._activeConnectionPosition = activeConnectionPosition || 0;
-+
+ if (this.device) {
+ this.statusItem = new NMDeviceTitleMenuItem(this.device._description);
+ this._statusChanged = this.statusItem.connect('toggled', Lang.bind(this, function(item, state) {
@@ -613,39 +844,22 @@ index 0000000..0e2d483
+ this._activeConnectionItem = null;
+ }
+
-+ let previousActive = this._activeConnection;
-+ this._activeConnection = null;
++ this._activeConnection = activeConnection;
+
-+ if (previousActive && previousActive._connection) {
-+ // add the connection back as a normal one, by removing and adding it
-+ this.removeConnection(previousActive._connection, true);
-+ this.addConnection(previousActive._connection);
-+ }
-+
-+ if (activeConnection) {
-+ if (activeConnection._connection) {
-+ // remove the connection if it was already seen
-+ let pos = this._findConnection(activeConnection._connection._uuid);
-+ if (pos != -1) {
-+ let obj = this._connections[pos];
-+ if (obj.item)
-+ obj.item.destroy();
-+ obj.item = null;
-+ }
-+ }
++ this._clearSection();
++ this._createSection();
++ },
+
-+ this._activeConnection = activeConnection;
-+ this._createActiveConnectionItem();
-+ this.section.addMenuItem(this._activeConnectionItem, this._activeConnectionPosition);
-+ }
++ checkConnection: function(connection) {
++ let exists = this._findConnection(connection) != -1;
++ let valid = this.connectionValid(connection);
++ if (exists && !valid)
++ this.removeConnection(connection);
++ else if (!exists && valid)
++ this.addConnection(connection);
+ },
+
+ addConnection: function(connection) {
-+ if (this._findConnection(connection._uuid) != -1) {
-+ log('Connection already added to menu, not adding again');
-+ return;
-+ }
-+
+ // record the connection
+ let obj = {
+ connection: connection,
@@ -658,20 +872,18 @@ index 0000000..0e2d483
+ return two.timestamp - one.timestamp;
+ });
+
-+ if (this._shouldShowConnectionList()) {
-+ this._clearSection();
-+ this._createSection();
-+ }
++ this._clearSection();
++ this._createSection();
+ },
+
-+ removeConnection: function(connection, skipCreateMenu) {
++ removeConnection: function(connection) {
+ if (!connection._uuid) {
+ log('Cannot remove a connection without an UUID');
+ return;
+ }
+ let pos = this._findConnection(connection._uuid);
+ if (pos == -1) {
-+ log('Connection was never added, cannot remove');
++ // this connection was never added, nothing to do here
+ return;
+ }
+
@@ -680,7 +892,7 @@ index 0000000..0e2d483
+ obj.item.destroy();
+ this._connections.splice(pos, 1);
+
-+ if (this._connections.length == 0 && !skipCreateMenu) {
++ if (this._connections.length == 0) {
+ // We need to show the automatic connection again
+ this._clearSection();
+ this._createSection();
@@ -709,8 +921,9 @@ index 0000000..0e2d483
+ /* Translators: this is for network connections that require some kind of key or password */
+ return _("authentication required");
+ case NetworkManager.DeviceState.UNAVAILABLE:
-+ if ((this.device.capabilities & NetworkManager.DeviceCapabilities.CARRIER_DETECT) &&
-+ !this.device.carrier)
++ // we don't check if the carrier property is actually false, as that causes race
++ // conditions if state is changed before the new carrier value is picked by libnm-glib
++ if (this.device.capabilities & NetworkManager.DeviceCapabilities.CARRIER_DETECT)
+ /* Translators: this is for wired network devices that are physically disconnected */
+ return _("cable unplugged");
+ else
@@ -872,15 +1085,6 @@ index 0000000..0e2d483
+ autoconnect: true
+ }));
+ return connection;
-+ },
-+
-+ _updateStatusItem: function() {
-+ // ignore device state here, when there's only one device
-+ // it will be taken care by NMApplet
-+ if (this._onlyOfCategory)
-+ this.statusItem.actor.hide();
-+ else
-+ this.statusItem.actor.show();
+ }
+};
+
@@ -898,7 +1102,6 @@ index 0000000..0e2d483
+ this.mobileDevice = null;
+ this._connectionType = 'ppp';
+
-+ // FIXME: listen for this property changing and recreate modem stuff
+ this._capabilities = device.current_capabilities;
+ if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) {
+ is_wwan = true;
@@ -915,7 +1118,7 @@ index 0000000..0e2d483
+
+ if (is_wwan) {
+ this.category = NMConnectionCategory.WWAN;
-+ this._autoConnectionName = _("New Mobile Broadband connection...");
++ this._autoConnectionName = _("Auto broadband");
+ } else {
+ this.category = NMConnectionCategory.WIRED;
+ this._autoConnectionName = _("Auto dial-up");
@@ -978,9 +1181,12 @@ index 0000000..0e2d483
+
+ _createSection: function() {
+ if (this.mobileDevice) {
++ // If operator_name is null, just pass the empty string, as the item is hidden anyway
+ this._operatorItem = new PopupMenu.PopupImageMenuItem(this.mobileDevice.operator_name || '',
+ this._getSignalIcon(),
+ { reactive: false });
++ if (this.mobileDevice.operator_name)
++ this._operatorItem.actor.hide();
+ this.section.addMenuItem(this._operatorItem);
+ }
+
@@ -1000,8 +1206,7 @@ index 0000000..0e2d483
+ _createAutomaticConnection: function() {
+ // FIXME: we need to summon the mobile wizard here
+ // or NM will not have the necessary parameters to complete the connection
-+ // (the same FIXME is currently in nm-applet, actually)
-+ // (this does not apply to dial-up)
++ // pending a DBus method on nm-applet
+
+ let connection = new NetworkManager.Connection;
+ connection._uuid = NetworkManager.utils_uuid_generate();
@@ -1023,7 +1228,9 @@ index 0000000..0e2d483
+ __proto__: NMDevice.prototype,
+
+ _init: function(client, device, connections) {
-+ this._autoConnectionName = _("New Mobile Broadband connection...");
++ this._autoConnectionName = this._makeConnectionName(device);
++ device.connect('notify::name', Lang.bind(this, this._updateAutoConnectionName));
++
+ this.category = NMConnectionCategory.WWAN;
+
+ NMDevice.prototype._init.call(this, client, device, connections);
@@ -1042,8 +1249,6 @@ index 0000000..0e2d483
+ },
+
+ _createAutomaticConnection: function() {
-+ // XXX: is this enough? or do we need other stuff from bluetoothd?
-+
+ let connection = new NetworkManager.Connection;
+ connection._uuid = NetworkManager.utils_uuid_generate();
+ connection.add_setting(new NetworkManager.SettingBluetooth);
@@ -1054,6 +1259,21 @@ index 0000000..0e2d483
+ autoconnect: false
+ }));
+ return connection;
++ },
++
++ _makeConnectionName: function(device) {
++ let name = device.name;
++ if (name)
++ return _("Auto %s").format(name);
++ else
++ return _("Auto bluetooth");
++ },
++
++ _updateAutoConnectionName: function() {
++ this._autoConnectionName = this._makeConnectioName(this.device);
++
++ this._clearSection();
++ this._createSection();
+ }
+};
+
@@ -1122,16 +1342,17 @@ index 0000000..0e2d483
+ }));
+ let accessPoints = device.get_access_points() || [ ];
+ for (let i = 0; i < accessPoints.length; i++) {
-+ // Access points are grouped by network name
++ // Access points are grouped by network
+ let ap = accessPoints[i];
-+ let ssid = ap.get_ssid();
-+ let pos = this._findNetwork(ssid);
++ let pos = this._findNetwork(ap);
+ let obj;
+ if (pos != -1) {
+ obj = this._networks[pos];
+ obj.accessPoints.push(ap);
+ } else {
+ obj = { ssid: ssid,
++ mode: ap.mode,
++ security: getApSecurityType(ap),
+ connections: [ ],
+ item: null,
+ accessPoints: [ ap ]
@@ -1222,17 +1443,27 @@ index 0000000..0e2d483
+ }
+ },
+
-+ _findNetwork: function(ssid) {
++ _networkCompare: function(network, accessPoint) {
++ if (!ssidCompare(network.ssid, accessPoint.get_ssid()))
++ return false;
++ if (network.mode != accessPoint.mode)
++ return false;
++ if (network.security != getApSecurityType(accessPoint))
++ return false;
++
++ return true;
++ },
++
++ _findNetwork: function(accessPoint) {
+ for (let i = 0; i < this._networks.length; i++) {
-+ if (ssidCompare(this._networks[i].ssid, ssid))
++ if (this._networkCompare(this._networks[i], accessPoint))
+ return i;
+ }
+ return -1;
+ },
+
+ _accessPointAdded: function(device, accessPoint) {
-+ let ssid = accessPoint.get_ssid();
-+ let pos = this._findNetwork(ssid);
++ let pos = this._findNetwork(accessPoint);
+ let apObj;
+ if (pos != -1) {
+ apObj = this._networks[pos];
@@ -1244,6 +1475,8 @@ index 0000000..0e2d483
+ apObj.accessPoints.push(accessPoint);
+ } else {
+ apObj = { ssid: ssid,
++ mode: accessPoint.mode,
++ security: getApSecurityType(accessPoint),
+ connections: [ ],
+ item: null,
+ accessPoints: [ accessPoint ]
@@ -1266,8 +1499,7 @@ index 0000000..0e2d483
+ },
+
+ _accessPointRemoved: function(device, accessPoint) {
-+ let ssid = accessPoint.get_ssid();
-+ let pos = this._findNetwork(ssid);
++ let pos = this._findNetwork(accessPoint);
+
+ if (pos == -1) {
+ log('Removing an access point that was never added');
@@ -1349,12 +1581,12 @@ index 0000000..0e2d483
+ this._overflowItem = null;
+ },
+
-+ removeConnection: function(connection, skipCreateAuto) {
++ removeConnection: function(connection) {
+ if (!connection._uuid)
+ return;
+ let pos = this._findConnection(connection._uuid);
+ if (pos == -1) {
-+ log('Removing connection that was never added');
++ // removing connection that was never added
+ return;
+ }
+
@@ -1369,7 +1601,7 @@ index 0000000..0e2d483
+ if (connections[k]._uuid == connection._uuid) {
+ // remove the connection from the access point group
+ connections.splice(k);
-+ anyauto = true;
++ anyauto = connections.length == 0;
+ if (apObj.item) {
+ if (apObj.item instanceof PopupMenu.PopupSubMenuMenuItem) {
+ let items = apObj.item.menu.getMenuItems();
@@ -1389,22 +1621,18 @@ index 0000000..0e2d483
+ apObj.item = null;
+ }
+ }
++ break;
+ }
+ }
+ }
+
-+ if (forceupdate || (anyauto && !skipCreateAuto)) {
++ if (forceupdate || anyauto) {
+ this._clearSection();
+ this._createSection();
+ }
+ },
+
+ addConnection: function(connection) {
-+ if (this._findConnection(connection._uuid) != -1) {
-+ log('Connection already added to menu, not adding again');
-+ return;
-+ }
-+
+ // record the connection
+ let obj = {
+ connection: connection,
@@ -1429,9 +1657,7 @@ index 0000000..0e2d483
+ }
+ }
+
-+ if (any &&
-+ (this.device.state == NetworkManager.DeviceState.DISCONNECTED ||
-+ this.device.state == NetworkManager.DeviceState.ACTIVATED)) {
++ if (any && this._shouldShowConnectionList() && !skipCreateMenu) {
+ // we need to show this connection
+ if (apObj.item && apObj.item.menu) {
+ // We're already showing the submenu for this access point
@@ -1544,8 +1770,6 @@ index 0000000..0e2d483
+ }
+
+ let activeAp = this.device.active_access_point;
-+ // Use undefined instead of null, so we're sure not to match anything
-+ // that comes from NetworkManager
+ let activeApSsid = activeAp ? activeAp.get_ssid() : null;
+
+ // we want five access points in the menu, including the active one
@@ -1675,7 +1899,7 @@ index 0000000..0e2d483
+ this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
+ this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
+ this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
-+ // FIXME: WiMax support (if enabled)
++ // TODO: WiMax support
+
+ // Connection types
+ this._ctypes = { };
@@ -1769,8 +1993,7 @@ index 0000000..0e2d483
+ }
+ let wrapperClass = this._dtypes[device.get_device_type()];
+ if (wrapperClass) {
-+ // XXX: check what nm-applet does here
-+ device._description = device.get_product();
++ device._description = getDeviceDescription(device);
+
+ let wrapper = new wrapperClass(this._client, device, this._connections);
+ // FIXME: these notifications are duplicate with those exposed by nm-applet
@@ -1874,7 +2097,7 @@ index 0000000..0e2d483
+ if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING) // prepare to notify to the user
+ a._notifyStateId = a.connect('notify::state', Lang.bind(this, this._notifyActiveConnection));
+ else {
-+ // notify immediately
++ // notify as soon as possible
+ Mainloop.idle_add(Lang.bind(this, function() {
+ this._notifyActiveConnection(a);
+ }));
@@ -1913,7 +2136,6 @@ index 0000000..0e2d483
+ if (!a._primaryDevice) {
+ if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
+ // find a good device to be considered primary
-+ // XXX: check what nm-applet does here
+ a._primaryDevice = null;
+ let devices = a.get_devices();
+ for (let j = 0; j < devices.length; j++) {
@@ -2027,15 +2249,6 @@ index 0000000..0e2d483
+ if (pos != -1)
+ this._connections.splice(connection);
+
-+ if (connection._everAdded)
-+ this._hideConnection(connection);
-+
-+ connection._uuid = null;
-+ connection.disconnect(connection._removedId);
-+ connection.disconnect(connection._updatedId);
-+ },
-+
-+ _hideConnection: function(connection) {
+ let section = connection._section;
+ if (section == NMConnectionCategory.VPN) {
+ this._devices.vpn.device.removeConnection(connection);
@@ -2046,13 +2259,13 @@ index 0000000..0e2d483
+ for (let i = 0; i < devices.length; i++)
+ devices[i].removeConnection(connection);
+ }
-+ connection._everAdded = false;
++
++ connection._uuid = null;
++ connection.disconnect(connection._removedId);
++ connection.disconnect(connection._updatedId);
+ },
+
+ _updateConnection: function(connection) {
-+ if (connection._everAdded)
-+ this._hideConnection(connection);
-+
+ let connectionSettings = connection.get_setting_by_name(NetworkManager.SETTING_CONNECTION_SETTING_NAME);
+ connection._type = connectionSettings.type;
+ connection._section = this._ctypes[connection._type];
@@ -2062,16 +2275,13 @@ index 0000000..0e2d483
+
+ let section = connection._section;
+ if (section == NMConnectionCategory.VPN) {
-+ this._devices.vpn.device.addConnection(connection);
++ this._devices.vpn.device.checkConnection(connection);
+ this._devices.vpn.section.actor.show();
+ connection._everAdded = true;
+ } else {
+ let devices = this._devices[section].devices;
+ for (let i = 0; i < devices.length; i++) {
-+ if (devices[i].connectionValid(connection)) {
-+ devices[i].addConnection(connection);
-+ connection._everAdded = true;
-+ }
++ devices[i].checkConnection(connection);
+ }
+ }
+ },
@@ -2181,17 +2391,18 @@ index 0000000..0e2d483
+ this.setIcon('network-wired');
+ break;
+ case NMConnectionCategory.WWAN:
-+ if (mc._type == NetworkManager.SETTING_BLUETOOTH_SETTING_NAME) {
-+ // XXX: NetworkManager does not give us signal for bluetooth
-+ this.setIcon('network-cellular-signal-excellent');
-+ break;
-+ }
-+
+ dev = mc._primaryDevice;
+ if (!dev) {
+ log('Active connection with no primary device?');
+ break;
+ }
++ if (!dev.mobileDevice) {
++ // this can happen for bluetooth in PAN mode
++ // XXX: need network-cellular-connected icon
++ this.setIcon('network-cellular-signal-excellent');
++ break;
++ }
++
+ if (this._mobileUpdateId && this._mobileUpdateDevice != dev) {
+ this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
+ this._mobileUpdateDevice = dev.mobileDevice;
@@ -2244,8 +2455,962 @@ index 0000000..0e2d483
+ this._setSummaryIcon(icon);
+ }
+};
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 7c251de..0c440ae 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -62,7 +62,8 @@ gnome_shell_cflags = \
+ $(GNOME_SHELL_CFLAGS) \
+ -I$(srcdir)/tray \
+ -DVERSION=\"$(VERSION)\" \
+- -DLOCALEDIR=\"$(datadir)/locale\" \
++ -DLOCALEDIR=\"$(datadir)/locale\" \
++ -DDATADIR=\"$(datadir)\" \
+ -DGNOME_SHELL_LIBEXECDIR=\"$(libexecdir)\" \
+ -DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
+ -DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \
+@@ -90,6 +91,7 @@ shell_public_headers_h = \
+ shell-generic-container.h \
+ shell-gtk-embed.h \
+ shell-global.h \
++ shell-mobile-providers.h \
+ shell-perf-log.h \
+ shell-slicer.h \
+ shell-stack.h \
+@@ -121,6 +123,7 @@ libgnome_shell_la_SOURCES = \
+ shell-generic-container.c \
+ shell-gtk-embed.c \
+ shell-global.c \
++ shell-mobile-providers.c \
+ shell-perf-log.c \
+ shell-polkit-authentication-agent.h \
+ shell-polkit-authentication-agent.c \
+diff --git a/src/shell-mobile-providers.c b/src/shell-mobile-providers.c
+new file mode 100644
+index 0000000..ca6a41f
+--- /dev/null
++++ b/src/shell-mobile-providers.c
+@@ -0,0 +1,816 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301 USA.
++ *
++ * Copyright (C) 2009 Novell, Inc.
++ * Author: Tambet Ingo (tambet@gmail.com).
++ *
++ * Copyright (C) 2009 - 2010 Red Hat, Inc.
++ */
++
++#include "config.h"
++
++#include <string.h>
++#include <errno.h>
++#include <stdlib.h>
++
++#include <glib/gi18n.h>
++
++#include "shell-mobile-providers.h"
++
++#ifndef MOBILE_BROADBAND_PROVIDER_INFO
++#define MOBILE_BROADBAND_PROVIDER_INFO DATADIR "/mobile-broadband-provider-info/serviceproviders.xml"
++#endif
++
++#define ISO_3166_COUNTRY_CODES DATADIR "/zoneinfo/iso3166.tab"
++
++
++
++static GHashTable *
++read_country_codes (void)
++{
++ GHashTable *table;
++ GIOChannel *channel;
++ GString *buffer;
++ GError *error = NULL;
++ GIOStatus status;
++
++ channel = g_io_channel_new_file (ISO_3166_COUNTRY_CODES, "r", &error);
++ if (!channel) {
++ if (error) {
++ g_warning ("Could not read " ISO_3166_COUNTRY_CODES ": %s", error->message);
++ g_error_free (error);
++ } else
++ g_warning ("Could not read " ISO_3166_COUNTRY_CODES ": Unknown error");
++
++ return NULL;
++ }
++
++ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
++ buffer = g_string_sized_new (32);
++
++ status = G_IO_STATUS_NORMAL;
++ while (status == G_IO_STATUS_NORMAL) {
++ status = g_io_channel_read_line_string (channel, buffer, NULL, &error);
++
++ switch (status) {
++ case G_IO_STATUS_NORMAL:
++ if (buffer->str[0] != '#') {
++ char **pieces;
++
++ pieces = g_strsplit (buffer->str, "\t", 2);
++
++ /* Hack for rh#556292; iso3166.tab is just wrong */
++ pieces[1] = pieces[1] ? g_strchomp (pieces[1]) : NULL;
++ if (pieces[1] && !strcmp (pieces[1], "Britain (UK)")) {
++ g_free (pieces[1]);
++ pieces[1] = g_strdup (_("United Kingdom"));
++ }
++
++ g_hash_table_insert (table, pieces[0], pieces[1]);
++ g_free (pieces);
++ }
++
++ g_string_truncate (buffer, 0);
++ break;
++ case G_IO_STATUS_EOF:
++ break;
++ case G_IO_STATUS_ERROR:
++ g_warning ("Error while reading: %s", error->message);
++ g_error_free (error);
++ break;
++ case G_IO_STATUS_AGAIN:
++ /* FIXME: Try again a few times, but really, it never happes, right? */
++ break;
++ }
++ }
++
++ g_string_free (buffer, TRUE);
++ g_io_channel_unref (channel);
++
++ return table;
++}
++
++/* XML Parser */
++
++typedef enum {
++ PARSER_TOPLEVEL = 0,
++ PARSER_COUNTRY,
++ PARSER_PROVIDER,
++ PARSER_METHOD_GSM,
++ PARSER_METHOD_GSM_APN,
++ PARSER_METHOD_CDMA,
++ PARSER_ERROR
++} MobileContextState;
++
++typedef struct {
++ GHashTable *country_codes;
++ GHashTable *table;
++
++ char *current_country;
++ GSList *current_providers;
++ ShellMobileProvider *current_provider;
++ ShellMobileAccessMethod *current_method;
++
++ char *text_buffer;
++ MobileContextState state;
++} MobileParser;
++
++static ShellGsmMccMnc *
++mcc_mnc_new (const char *mcc, const char *mnc)
++{
++ ShellGsmMccMnc *m;
++
++ m = g_slice_new (ShellGsmMccMnc);
++ m->mcc = g_strstrip (g_strdup (mcc));
++ m->mnc = g_strstrip (g_strdup (mnc));
++ return m;
++}
++
++/* added in porting */
++static ShellGsmMccMnc *
++mcc_mnc_copy (const ShellGsmMccMnc *other) {
++ ShellGsmMccMnc *ret;
++
++ ret = g_slice_new (ShellGsmMccMnc);
++ ret->mcc = g_strdup (other->mcc);
++ ret->mnc = g_strdup (other->mnc);
++ return ret;
++}
++
++static void
++mcc_mnc_free (ShellGsmMccMnc *m)
++{
++ g_return_if_fail (m != NULL);
++ g_free (m->mcc);
++ g_free (m->mnc);
++ g_slice_free (ShellGsmMccMnc, m);
++}
++
++/* added in porting */
++G_DEFINE_BOXED_TYPE (ShellGsmMccMnc, shell_gsm_mcc_mnc, mcc_mnc_copy, mcc_mnc_free)
++
++static ShellMobileAccessMethod *
++access_method_new (void)
++{
++ ShellMobileAccessMethod *method;
++
++ method = g_slice_new0 (ShellMobileAccessMethod);
++ method->refs = 1;
++ method->lcl_names = g_hash_table_new_full (g_str_hash, g_str_equal,
++ (GDestroyNotify) g_free,
++ (GDestroyNotify) g_free);
++
++ return method;
++}
++
++ShellMobileAccessMethod *
++shell_mobile_access_method_ref (ShellMobileAccessMethod *method)
++{
++ g_return_val_if_fail (method != NULL, NULL);
++ g_return_val_if_fail (method->refs > 0, NULL);
++
++ method->refs++;
++
++ return method;
++}
++
++void
++shell_mobile_access_method_unref (ShellMobileAccessMethod *method)
++{
++ g_return_if_fail (method != NULL);
++ g_return_if_fail (method->refs > 0);
++
++ if (--method->refs == 0) {
++ g_free (method->name);
++ g_hash_table_destroy (method->lcl_names);
++ g_free (method->username);
++ g_free (method->password);
++ g_free (method->gateway);
++ g_free (method->gsm_apn);
++ g_slist_foreach (method->dns, (GFunc) g_free, NULL);
++ g_slist_free (method->dns);
++
++ g_slice_free (ShellMobileAccessMethod, method);
++ }
++}
++
++GType
++shell_mobile_access_method_get_type (void)
++{
++ static GType type = 0;
++
++ if (G_UNLIKELY (type == 0)) {
++ type = g_boxed_type_register_static ("ShellMobileAccessMethod",
++ (GBoxedCopyFunc) shell_mobile_access_method_ref,
++ (GBoxedFreeFunc) shell_mobile_access_method_unref);
++ }
++ return type;
++}
++
++
++static ShellMobileProvider *
++provider_new (void)
++{
++ ShellMobileProvider *provider;
++
++ provider = g_slice_new0 (ShellMobileProvider);
++ provider->refs = 1;
++ provider->lcl_names = g_hash_table_new_full (g_str_hash, g_str_equal,
++ (GDestroyNotify) g_free,
++ (GDestroyNotify) g_free);
++
++ return provider;
++}
++
++ShellMobileProvider *
++shell_mobile_provider_ref (ShellMobileProvider *provider)
++{
++ provider->refs++;
++
++ return provider;
++}
++
++void
++shell_mobile_provider_unref (ShellMobileProvider *provider)
++{
++ if (--provider->refs == 0) {
++ g_free (provider->name);
++ g_hash_table_destroy (provider->lcl_names);
++
++ g_slist_foreach (provider->methods, (GFunc) shell_mobile_access_method_unref, NULL);
++ g_slist_free (provider->methods);
++
++ g_slist_foreach (provider->gsm_mcc_mnc, (GFunc) mcc_mnc_free, NULL);
++ g_slist_free (provider->gsm_mcc_mnc);
++
++ g_slist_free (provider->cdma_sid);
++
++ g_slice_free (ShellMobileProvider, provider);
++ }
++}
++
++GType
++shell_mobile_provider_get_type (void)
++{
++ static GType type = 0;
++
++ if (G_UNLIKELY (type == 0)) {
++ type = g_boxed_type_register_static ("ShellMobileProvider",
++ (GBoxedCopyFunc) shell_mobile_provider_ref,
++ (GBoxedFreeFunc) shell_mobile_provider_unref);
++ }
++ return type;
++}
++
++static void
++provider_list_free (gpointer data)
++{
++ GSList *list = (GSList *) data;
++
++ while (list) {
++ shell_mobile_provider_unref ((ShellMobileProvider *) list->data);
++ list = g_slist_delete_link (list, list);
++ }
++}
++
++static void
++parser_toplevel_start (MobileParser *parser,
++ const char *name,
++ const char **attribute_names,
++ const char **attribute_values)
++{
++ int i;
++
++ if (!strcmp (name, "serviceproviders")) {
++ for (i = 0; attribute_names && attribute_names[i]; i++) {
++ if (!strcmp (attribute_names[i], "format")) {
++ if (strcmp (attribute_values[i], "2.0")) {
++ g_warning ("%s: mobile broadband provider database format '%s'"
++ " not supported.", __func__, attribute_values[i]);
++ parser->state = PARSER_ERROR;
++ break;
++ }
++ }
++ }
++ } else if (!strcmp (name, "country")) {
++ for (i = 0; attribute_names && attribute_names[i]; i++) {
++ if (!strcmp (attribute_names[i], "code")) {
++ char *country_code;
++ char *country;
++
++ country_code = g_ascii_strup (attribute_values[i], -1);
++ country = g_hash_table_lookup (parser->country_codes, country_code);
++ if (country) {
++ parser->current_country = g_strdup (country);
++ g_free (country_code);
++ } else
++ parser->current_country = country_code;
++
++ parser->state = PARSER_COUNTRY;
++ break;
++ }
++ }
++ }
++}
++
++static void
++parser_country_start (MobileParser *parser,
++ const char *name,
++ const char **attribute_names,
++ const char **attribute_values)
++{
++ if (!strcmp (name, "provider")) {
++ parser->state = PARSER_PROVIDER;
++ parser->current_provider = provider_new ();
++ }
++}
++
++static void
++parser_provider_start (MobileParser *parser,
++ const char *name,
++ const char **attribute_names,
++ const char **attribute_values)
++{
++ if (!strcmp (name, "gsm"))
++ parser->state = PARSER_METHOD_GSM;
++ else if (!strcmp (name, "cdma")) {
++ parser->state = PARSER_METHOD_CDMA;
++ parser->current_method = access_method_new ();
++ }
++}
++
++static void
++parser_gsm_start (MobileParser *parser,
++ const char *name,
++ const char **attribute_names,
++ const char **attribute_values)
++{
++ if (!strcmp (name, "network-id")) {
++ const char *mcc = NULL, *mnc = NULL;
++ int i;
++
++ for (i = 0; attribute_names && attribute_names[i]; i++) {
++ if (!strcmp (attribute_names[i], "mcc"))
++ mcc = attribute_values[i];
++ else if (!strcmp (attribute_names[i], "mnc"))
++ mnc = attribute_values[i];
++
++ if (mcc && strlen (mcc) && mnc && strlen (mnc)) {
++ parser->current_provider->gsm_mcc_mnc = g_slist_prepend (parser->current_provider->gsm_mcc_mnc,
++ mcc_mnc_new (mcc, mnc));
++ break;
++ }
++ }
++ } else if (!strcmp (name, "apn")) {
++ int i;
++
++ for (i = 0; attribute_names && attribute_names[i]; i++) {
++ if (!strcmp (attribute_names[i], "value")) {
++
++ parser->state = PARSER_METHOD_GSM_APN;
++ parser->current_method = access_method_new ();
++ parser->current_method->gsm_apn = g_strstrip (g_strdup (attribute_values[i]));
++ break;
++ }
++ }
++ }
++}
++
++static void
++parser_cdma_start (MobileParser *parser,
++ const char *name,
++ const char **attribute_names,
++ const char **attribute_values)
++{
++ if (!strcmp (name, "sid")) {
++ int i;
++
++ for (i = 0; attribute_names && attribute_names[i]; i++) {
++ if (!strcmp (attribute_names[i], "value")) {
++ unsigned long tmp;
++
++ errno = 0;
++ tmp = strtoul (attribute_values[i], NULL, 10);
++ if (errno == 0 && tmp > 0)
++ parser->current_provider->cdma_sid = g_slist_prepend (parser->current_provider->cdma_sid,
++ GUINT_TO_POINTER ((guint32) tmp));
++ break;
++ }
++ }
++ }
++}
++
++static void
++mobile_parser_start_element (GMarkupParseContext *context,
++ const gchar *element_name,
++ const gchar **attribute_names,
++ const gchar **attribute_values,
++ gpointer data,
++ GError **error)
++{
++ MobileParser *parser = (MobileParser *) data;
++
++ if (parser->text_buffer) {
++ g_free (parser->text_buffer);
++ parser->text_buffer = NULL;
++ }
++
++ switch (parser->state) {
++ case PARSER_TOPLEVEL:
++ parser_toplevel_start (parser, element_name, attribute_names, attribute_values);
++ break;
++ case PARSER_COUNTRY:
++ parser_country_start (parser, element_name, attribute_names, attribute_values);
++ break;
++ case PARSER_PROVIDER:
++ parser_provider_start (parser, element_name, attribute_names, attribute_values);
++ break;
++ case PARSER_METHOD_GSM:
++ parser_gsm_start (parser, element_name, attribute_names, attribute_values);
++ break;
++ case PARSER_METHOD_CDMA:
++ parser_cdma_start (parser, element_name, attribute_names, attribute_values);
++ break;
++ default:
++ break;
++ }
++}
++
++static void
++parser_country_end (MobileParser *parser,
++ const char *name)
++{
++ if (!strcmp (name, "country")) {
++ g_hash_table_insert (parser->table, parser->current_country, parser->current_providers);
++ parser->current_country = NULL;
++ parser->current_providers = NULL;
++ parser->text_buffer = NULL;
++ parser->state = PARSER_TOPLEVEL;
++ }
++}
++
++static void
++parser_provider_end (MobileParser *parser,
++ const char *name)
++{
++ if (!strcmp (name, "name")) {
++ if (!parser->current_provider->name) {
++ /* Use the first one. */
++ parser->current_provider->name = parser->text_buffer;
++ parser->text_buffer = NULL;
++ }
++ } else if (!strcmp (name, "provider")) {
++ parser->current_provider->methods = g_slist_reverse (parser->current_provider->methods);
++
++ parser->current_provider->gsm_mcc_mnc = g_slist_reverse (parser->current_provider->gsm_mcc_mnc);
++ parser->current_provider->cdma_sid = g_slist_reverse (parser->current_provider->cdma_sid);
++
++ parser->current_providers = g_slist_prepend (parser->current_providers, parser->current_provider);
++ parser->current_provider = NULL;
++ parser->text_buffer = NULL;
++ parser->state = PARSER_COUNTRY;
++ }
++}
++
++static void
++parser_gsm_end (MobileParser *parser,
++ const char *name)
++{
++ if (!strcmp (name, "gsm")) {
++ parser->text_buffer = NULL;
++ parser->state = PARSER_PROVIDER;
++ }
++}
++
++static void
++parser_gsm_apn_end (MobileParser *parser,
++ const char *name)
++{
++ if (!strcmp (name, "name")) {
++ if (!parser->current_method->name) {
++ /* Use the first one. */
++ parser->current_method->name = parser->text_buffer;
++ parser->text_buffer = NULL;
++ }
++ } else if (!strcmp (name, "username")) {
++ parser->current_method->username = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "password")) {
++ parser->current_method->password = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "dns")) {
++ parser->current_method->dns = g_slist_prepend (parser->current_method->dns, parser->text_buffer);
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "gateway")) {
++ parser->current_method->gateway = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "apn")) {
++ parser->current_method->type = SHELL_MOBILE_ACCESS_METHOD_TYPE_GSM;
++ parser->current_method->dns = g_slist_reverse (parser->current_method->dns);
++
++ if (!parser->current_method->name)
++ parser->current_method->name = g_strdup (_("Default"));
++
++ parser->current_provider->methods = g_slist_prepend (parser->current_provider->methods,
++ parser->current_method);
++ parser->current_method = NULL;
++ parser->text_buffer = NULL;
++ parser->state = PARSER_METHOD_GSM;
++ }
++}
++
++static void
++parser_cdma_end (MobileParser *parser,
++ const char *name)
++{
++ if (!strcmp (name, "username")) {
++ parser->current_method->username = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "password")) {
++ parser->current_method->password = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "dns")) {
++ parser->current_method->dns = g_slist_prepend (parser->current_method->dns, parser->text_buffer);
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "gateway")) {
++ parser->current_method->gateway = parser->text_buffer;
++ parser->text_buffer = NULL;
++ } else if (!strcmp (name, "cdma")) {
++ parser->current_method->type = SHELL_MOBILE_ACCESS_METHOD_TYPE_CDMA;
++ parser->current_method->dns = g_slist_reverse (parser->current_method->dns);
++
++ if (!parser->current_method->name)
++ parser->current_method->name = g_strdup (parser->current_provider->name);
++
++ parser->current_provider->methods = g_slist_prepend (parser->current_provider->methods,
++ parser->current_method);
++ parser->current_method = NULL;
++ parser->text_buffer = NULL;
++ parser->state = PARSER_PROVIDER;
++ }
++}
++
++static void
++mobile_parser_end_element (GMarkupParseContext *context,
++ const gchar *element_name,
++ gpointer data,
++ GError **error)
++{
++ MobileParser *parser = (MobileParser *) data;
++
++ switch (parser->state) {
++ case PARSER_COUNTRY:
++ parser_country_end (parser, element_name);
++ break;
++ case PARSER_PROVIDER:
++ parser_provider_end (parser, element_name);
++ break;
++ case PARSER_METHOD_GSM:
++ parser_gsm_end (parser, element_name);
++ break;
++ case PARSER_METHOD_GSM_APN:
++ parser_gsm_apn_end (parser, element_name);
++ break;
++ case PARSER_METHOD_CDMA:
++ parser_cdma_end (parser, element_name);
++ break;
++ default:
++ break;
++ }
++}
++
++static void
++mobile_parser_characters (GMarkupParseContext *context,
++ const gchar *text,
++ gsize text_len,
++ gpointer data,
++ GError **error)
++{
++ MobileParser *parser = (MobileParser *) data;
++
++ g_free (parser->text_buffer);
++ parser->text_buffer = g_strdup (text);
++}
++
++static const GMarkupParser mobile_parser = {
++ mobile_parser_start_element,
++ mobile_parser_end_element,
++ mobile_parser_characters,
++ NULL, /* passthrough */
++ NULL /* error */
++};
++
++/**
++ * shell_mobile_providers_parse:
++ * @out_ccs: (out) (allow-none): (element-type utf8 utf8): a #GHashTable containing
++ * country codes
++ *
++ * Returns: (element-type utf8 GList<Shell.MobileProvider>) (transfer container): a
++ * hash table where keys are country names 'char *', values are a 'GSList *'
++ * of 'ShellMobileProvider *'. Everything is destroyed with g_hash_table_destroy ().
++*/
++GHashTable *
++shell_mobile_providers_parse (GHashTable **out_ccs)
++{
++ GMarkupParseContext *ctx;
++ GIOChannel *channel;
++ MobileParser parser;
++ GError *error = NULL;
++ char buffer[4096];
++ GIOStatus status;
++ gsize len = 0;
++
++ memset (&parser, 0, sizeof (MobileParser));
++
++ parser.country_codes = read_country_codes ();
++ if (!parser.country_codes)
++ goto out;
++
++ channel = g_io_channel_new_file (MOBILE_BROADBAND_PROVIDER_INFO, "r", &error);
++ if (!channel) {
++ if (error) {
++ g_warning ("Could not read " MOBILE_BROADBAND_PROVIDER_INFO ": %s", error->message);
++ g_error_free (error);
++ } else
++ g_warning ("Could not read " MOBILE_BROADBAND_PROVIDER_INFO ": Unknown error");
++
++ goto out;
++ }
++
++ parser.table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, provider_list_free);
++ parser.state = PARSER_TOPLEVEL;
++
++ ctx = g_markup_parse_context_new (&mobile_parser, 0, &parser, NULL);
++
++ status = G_IO_STATUS_NORMAL;
++ while (status == G_IO_STATUS_NORMAL) {
++ status = g_io_channel_read_chars (channel, buffer, sizeof (buffer), &len, &error);
++
++ switch (status) {
++ case G_IO_STATUS_NORMAL:
++ if (!g_markup_parse_context_parse (ctx, buffer, len, &error)) {
++ status = G_IO_STATUS_ERROR;
++ g_warning ("Error while parsing XML: %s", error->message);
++ g_error_free (error);;
++ }
++ break;
++ case G_IO_STATUS_EOF:
++ break;
++ case G_IO_STATUS_ERROR:
++ g_warning ("Error while reading: %s", error->message);
++ g_error_free (error);
++ break;
++ case G_IO_STATUS_AGAIN:
++ /* FIXME: Try again a few times, but really, it never happes, right? */
++ break;
++ }
++ }
++
++ g_io_channel_unref (channel);
++ g_markup_parse_context_free (ctx);
++
++ if (parser.current_provider) {
++ g_warning ("pending current provider");
++ shell_mobile_provider_unref (parser.current_provider);
++ }
++
++ if (parser.current_providers) {
++ g_warning ("pending current providers");
++ provider_list_free (parser.current_providers);
++ }
++
++ g_free (parser.current_country);
++ g_free (parser.text_buffer);
++
++ out:
++ if (parser.country_codes) {
++ if (out_ccs)
++ *out_ccs = parser.country_codes;
++ else
++ g_hash_table_destroy (parser.country_codes);
++ }
++
++ return parser.table;
++}
++
++static void
++dump_generic (ShellMobileAccessMethod *method)
++{
++ GSList *iter;
++ GString *dns;
++
++ g_print (" username: %s\n", method->username ? method->username : "");
++ g_print (" password: %s\n", method->password ? method->password : "");
++
++ dns = g_string_new (NULL);
++ for (iter = method->dns; iter; iter = g_slist_next (iter))
++ g_string_append_printf (dns, "%s%s", dns->len ? ", " : "", (char *) iter->data);
++ g_print (" dns : %s\n", dns->str);
++ g_string_free (dns, TRUE);
++
++ g_print (" gateway : %s\n", method->gateway ? method->gateway : "");
++}
++
++static void
++dump_cdma (ShellMobileAccessMethod *method)
++{
++ g_print (" CDMA: %s\n", method->name);
++
++ dump_generic (method);
++}
++
++static void
++dump_gsm (ShellMobileAccessMethod *method)
++{
++ g_print (" APN: %s (%s)\n", method->name, method->gsm_apn);
++
++ dump_generic (method);
++}
++
++static void
++dump_country (gpointer key, gpointer value, gpointer user_data)
++{
++ GSList *citer, *miter;
++
++ for (citer = value; citer; citer = g_slist_next (citer)) {
++ ShellMobileProvider *provider = citer->data;
++
++ g_print ("Provider: %s (%s)\n", provider->name, (const char *) key);
++ for (miter = provider->methods; miter; miter = g_slist_next (miter)) {
++ ShellMobileAccessMethod *method = miter->data;
++ GSList *liter;
++
++
++ for (liter = provider->gsm_mcc_mnc; liter; liter = g_slist_next (liter)) {
++ ShellGsmMccMnc *m = liter->data;
++ g_print (" MCC/MNC: %s-%s\n", m->mcc, m->mnc);
++ }
++
++ for (liter = provider->cdma_sid; liter; liter = g_slist_next (liter))
++ g_print (" SID: %d\n", GPOINTER_TO_UINT (liter->data));
++
++ switch (method->type) {
++ case SHELL_MOBILE_ACCESS_METHOD_TYPE_CDMA:
++ dump_cdma (method);
++ break;
++ case SHELL_MOBILE_ACCESS_METHOD_TYPE_GSM:
++ dump_gsm (method);
++ break;
++ default:
++ break;
++ }
++ g_print ("\n");
++ }
++ }
++}
++
++void
++shell_mobile_providers_dump (GHashTable *providers)
++{
++ g_return_if_fail (providers != NULL);
++ g_hash_table_foreach (providers, dump_country, NULL);
++}
++
++/* All the following don't exist in nm-applet, because C doesn't need
++ those. They're only needed for the introspection annotations
++*/
++
++/**
++ * shell_mobile_provider_get_gsm_mcc_mnc:
++ * @provider: a #ShellMobileProvider
++ *
++ * Returns: (element-type Shell.GsmMccMnc) (transfer none): the
++ * list of #ShellGsmMccMnc this provider exposes
++ */
++GSList *
++shell_mobile_provider_get_gsm_mcc_mnc (ShellMobileProvider *provider)
++{
++ return provider->gsm_mcc_mnc;
++}
++
++/**
++ * shell_mobile_provider_get_cdma_sid:
++ * @provider: a #ShellMobileProvider
++ *
++ * Returns: (element-type guint32) (transfer none): the
++ * list of CDMA sids this provider exposes
++ */
++GSList *
++shell_mobile_provider_get_cdma_sid (ShellMobileProvider *provider)
++{
++ return provider->cdma_sid;
++}
+diff --git a/src/shell-mobile-providers.h b/src/shell-mobile-providers.h
+new file mode 100644
+index 0000000..d70b8e2
+--- /dev/null
++++ b/src/shell-mobile-providers.h
+@@ -0,0 +1,96 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301 USA.
++ *
++ * Copyright (C) 2009 Novell, Inc.
++ * Author: Tambet Ingo (tambet@gmail.com).
++ *
++ * Copyright (C) 2009 - 2010 Red Hat, Inc.
++ *
++ * Ported to GNOME Shell by Giovanni Campagna <scampa.giovanni@gmail.com>
++ * Porting consisted only in replacing nmn with shell, to be compatible with
++ * GObject Introspection namespacing
++ */
++
++#ifndef SHELL_MOBILE_PROVIDERS_H
++#define SHELL_MOBILE_PROVIDERS_H
++
++#include <glib.h>
++#include <glib-object.h>
++
++#define SHELL_TYPE_MOBILE_PROVIDER (shell_mobile_provider_get_type ())
++#define SHELL_TYPE_MOBILE_ACCESS_METHOD (shell_mobile_access_method_get_type ())
++
++typedef enum {
++ SHELL_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN = 0,
++ SHELL_MOBILE_ACCESS_METHOD_TYPE_GSM,
++ SHELL_MOBILE_ACCESS_METHOD_TYPE_CDMA
++} ShellMobileAccessMethodType;
++
++typedef struct {
++ char *mcc;
++ char *mnc;
++} ShellGsmMccMnc;
++
++typedef struct {
++ char *name;
++ /* maps lang (char *) -> name (char *) */
++ GHashTable *lcl_names;
++
++ char *username;
++ char *password;
++ char *gateway;
++ GSList *dns; /* GSList of 'char *' */
++
++ /* Only used with SHELL_PROVIDER_TYPE_GSM */
++ char *gsm_apn;
++
++ ShellMobileAccessMethodType type;
++
++ gint refs;
++} ShellMobileAccessMethod;
++
++typedef struct {
++ char *name;
++ /* maps lang (char *) -> name (char *) */
++ GHashTable *lcl_names;
++
++ GSList *methods; /* GSList of ShellMobileAccessMethod */
++
++ GSList *gsm_mcc_mnc; /* GSList of ShellGsmMccMnc */
++ GSList *cdma_sid; /* GSList of guint32 */
++
++ gint refs;
++} ShellMobileProvider;
++
++
++GType shell_gsm_mcc_mnc_get_type (void); /* added in porting */
++GType shell_mobile_provider_get_type (void);
++GType shell_mobile_access_method_get_type (void);
++
++ShellMobileProvider *shell_mobile_provider_ref (ShellMobileProvider *provider);
++void shell_mobile_provider_unref (ShellMobileProvider *provider);
++GSList * shell_mobile_provider_get_gsm_mcc_mnc (ShellMobileProvider *provider);
++GSList * shell_mobile_provider_get_cdma_sid (ShellMobileProvider *provider);
++
++ShellMobileAccessMethod *shell_mobile_access_method_ref (ShellMobileAccessMethod *method);
++void shell_mobile_access_method_unref (ShellMobileAccessMethod *method);
++
++GHashTable *shell_mobile_providers_parse (GHashTable **out_ccs);
++
++void shell_mobile_providers_dump (GHashTable *providers);
++
++#endif /* SHELL_MOBILE_PROVIDERS_H */
diff --git a/tools/build/gnome-shell.modules b/tools/build/gnome-shell.modules
-index 3f51fa2..73332b8 100644
+index 6c8db09..837cb22 100644
--- a/tools/build/gnome-shell.modules
+++ b/tools/build/gnome-shell.modules
@@ -9,6 +9,8 @@
@@ -2257,7 +3422,7 @@ index 3f51fa2..73332b8 100644
<repository type="tarball" name="cairo.org"
href="http://cairographics.org/"/>
<repository type="tarball" name="0pointer.de"
-@@ -367,4 +369,19 @@
+@@ -369,4 +371,19 @@
</dependencies>
</autotools>
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 56f0b5b..39a2127 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -25,17 +25,18 @@ fi
# FIXME: Automagic gnome-bluetooth[introspection] support.
# latest mutter is needed due to commit 474ff2e997
# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
-COMMON_DEPEND=">=dev-libs/glib-2.25.9
+COMMON_DEPEND=">=dev-libs/glib-2.25.9:2
>=dev-libs/gjs-0.7.11
>=dev-libs/gobject-introspection-0.10.1
x11-libs/gdk-pixbuf:2[introspection]
>=x11-libs/gtk+-3.0.0:3[introspection]
- >=media-libs/clutter-1.5.15[introspection]
+ >=media-libs/clutter-1.5.15:1.0[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
>=gnome-base/gsettings-desktop-schemas-2.91.91
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
>=media-libs/gst-plugins-base-0.10.16
+ >=net-im/telepathy-logger-0.2.4[introspection]
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
@@ -61,7 +62,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
# Each block:
# 1. Introspection stuff + dconf needed via imports.gi.*
# 2. gnome-session is needed for gnome-session-quit
-# 3. Don't remember
+# 3. Control shell settings
# 4. nm-applet is needed for auth prompting and the wireless connection dialog
RDEPEND="${COMMON_DEPEND}
@@ -92,7 +93,7 @@ src_prepare() {
ewarn "Adding support for the experimental NetworkManager applet."
ewarn "This needs the latest NetworkManager & nm-applet trunk."
ewarn "Report bugs about this to 'nirbheek' on #gentoo-desktop @ FreeNode."
- epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.4.patch"
+ epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.5.patch"
fi
epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-13 20:44 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-13 20:44 UTC (permalink / raw
To: gentoo-commits
commit: ad3be0a0c805e47a6e586d63e22cf45abd5fbac7
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 13 20:44:48 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Mar 13 20:44:48 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ad3be0a0
gnome-base/gnome-shell: update NMApplet patch
---
...> gnome-shell-experimental-nm-applet-1.4.patch} | 883 ++++++++++++--------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 2 +-
2 files changed, 550 insertions(+), 335 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch
similarity index 77%
rename from gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch
rename to gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch
index 34190c3..35891ab 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.3.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.4.patch
@@ -1,27 +1,31 @@
-From a4a93f5d68ea9ce6347125eaaf9640ed98654980 Mon Sep 17 00:00:00 2001
+From 8a361b46917b8a371c79e9ea0d9ce2520110c5a3 Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Tue, 25 Jan 2011 22:08:12 +0100
Subject: [PATCH] Status area: add NetworkManager indicator
Adds an implementation of nm-applet in javascript. Uses the new
introspection from NetworkManager, and temporarily requires
-nm-applet to be running for the secret service and for wireless
-dialogs.
+nm-applet to be running for the secret service.
+Features a renewed interface, with each device controllable through
+a switch, which if toggled off disconnects, and if toggled on
+connects to the most recently used valid connection. More esoteric
+features like creation of ad-hoc networks have been moved to the
+control center panel.
https://bugzilla.gnome.org/show_bug.cgi?id=621707
---
data/theme/gnome-shell.css | 8 +
js/Makefile.am | 2 +
- js/misc/modemManager.js | 103 +++
+ js/misc/modemManager.js | 127 +++
js/ui/panel.js | 3 +-
- js/ui/status/network.js | 1841 +++++++++++++++++++++++++++++++++++++++
+ js/ui/status/network.js | 2028 +++++++++++++++++++++++++++++++++++++++
tools/build/gnome-shell.modules | 17 +
- 6 files changed, 1973 insertions(+), 1 deletions(-)
+ 6 files changed, 2184 insertions(+), 1 deletions(-)
create mode 100644 js/misc/modemManager.js
create mode 100644 js/ui/status/network.js
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
-index 22670bd..39bb7ab 100644
+index 4fd303a..06ef4b2 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -158,6 +158,14 @@ StTooltip StLabel {
@@ -61,10 +65,10 @@ index 55bb111..a085bfc 100644
ui/status/bluetooth.js \
diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js
new file mode 100644
-index 0000000..b368511
+index 0000000..d019d50
--- /dev/null
+++ b/js/misc/modemManager.js
-@@ -0,0 +1,103 @@
+@@ -0,0 +1,127 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+const DBus = imports.dbus;
+const Lang = imports.lang;
@@ -77,7 +81,7 @@ index 0000000..b368511
+ name: 'org.freedesktop.ModemManager.Modem.Gsm.Network',
+ methods: [
+ { name: 'GetRegistrationInfo', inSignature: '', outSignature: 'uss' },
-+ { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' },
++ { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' }
+ ],
+ properties: [
+ { name: 'AccessTechnology', signature: 'u', access: 'read' }
@@ -93,7 +97,7 @@ index 0000000..b368511
+ name: 'org.freedesktop.ModemManager.Modem.Cdma',
+ methods: [
+ { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' },
-+ { name: 'GetServingSystem', inSignature: '', outSignature: 'usu' },
++ { name: 'GetServingSystem', inSignature: '', outSignature: 'usu' }
+ ],
+ signals: [
+ { name: 'SignalQuality', inSignature: 'u' }
@@ -125,14 +129,26 @@ index 0000000..b368511
+ this.operator_name = null;
+ this.emit('notify::operator-name');
+ }));
-+ this._proxy.GetRegistrationInfoRemote(Lang.bind(this, function(status, code, name) {
++ this._proxy.GetRegistrationInfoRemote(Lang.bind(this, function(result, err) {
++ if (err) {
++ log(err);
++ return;
++ }
++
++ let [status, code, name] = result;
+ if (name.length > 0)
+ this.operator_name = name;
+ else
+ this.operator_name = null;
+ this.emit('notify::operator-name');
+ }));
-+ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(quality) {
++ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(result, err) {
++ if (err) {
++ // it will return an error if the device is not connected
++ return;
++ }
++
++ let [quality] = result;
+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
+ }));
@@ -154,13 +170,25 @@ index 0000000..b368511
+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
+ }));
-+ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(proxy, quality) {
++ this._proxy.GetSignalQualityRemote(Lang.bind(this, function(result, err) {
++ if (err) {
++ // it will return an error if the device is not connected
++ return;
++ }
++ let [quality] = result;
+ this.signal_quality = quality;
+ this.emit('notify::signal-quality');
+ }));
-+ this._proxy.GetServingSystemRemote(Lang.bind(this, function(proxy, status, name, code) {
++ this._proxy.GetServingSystemRemote(Lang.bind(this, function(result, err) {
++ if (err) {
++ // it will return an error if the device is not connected
++ return;
++ }
++
++ let [bandClass, band, id] = result;
+ if (name.length > 0)
-+ this.operator_name = name;
++ // FIXME: the applet has a mapping of ids to names
++ this.operator_name = 'Mystery CDMA Provider ' + id;
+ else
+ this.operator_name = null;
+ this.emit('notify::operator-name');
@@ -184,10 +212,10 @@ index c08c3e8..abe0fe2 100644
if (Config.HAVE_BLUETOOTH)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
new file mode 100644
-index 0000000..9700896
+index 0000000..0e2d483
--- /dev/null
+++ b/js/ui/status/network.js
-@@ -0,0 +1,1841 @@
+@@ -0,0 +1,2028 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+const ByteArray = imports.byteArray;
+const DBus = imports.dbus;
@@ -218,15 +246,6 @@ index 0000000..9700896
+ VPN: 'vpn'
+};
+
-+const NMAppletIface = {
-+ name: 'org.gnome.network-manager-applet',
-+ methods: [
-+ { name: 'ConnectToHiddenNetwork', outSignature: '', inSignature: '' },
-+ { name: 'CreateWifiNetwork', outSignature: '', inSignature: '' },
-+ ]
-+};
-+const NMAppletProxy = DBus.makeProxyClass(NMAppletIface);
-+
+function macToArray(string) {
+ return string.split(':').map(function(el) {
+ return parseInt(el, 16);
@@ -267,6 +286,10 @@ index 0000000..9700896
+// shared between NMNetworkMenuItem and NMDeviceWireless
+function sortAccessPoints(accessPoints) {
+ return accessPoints.sort(function (one, two) {
++ if (one.flags != two.flags) {
++ // sort secure access point before open ones
++ return one.flags & NetworkManager['80211ApFlags'].PRIVACY ? -1 : 1;
++ }
+ return two.strength - one.strength;
+ });
+}
@@ -342,6 +365,147 @@ index 0000000..9700896
+ }
+};
+
++function NMDeviceTitleMenuItem() {
++ this._init.apply(this, arguments);
++}
++
++NMDeviceTitleMenuItem.prototype = {
++ __proto__: PopupMenu.PopupBaseMenuItem.prototype,
++
++ _init: function(description, params) {
++ PopupMenu.PopupBaseMenuItem.prototype._init.call(this, params);
++
++ this._descriptionLabel = new St.Label({ text: description,
++ style_class: 'popup-subtitle-menu-item'
++ });
++ this.addActor(this._descriptionLabel);
++
++ this._statusBin = new St.Bin();
++ this.addActor(this._statusBin, { align: St.Align.END });
++
++ this._statusLabel = new St.Label({ text: '',
++ style_class: 'popup-inactive-menu-item'
++ });
++ this._switch = new PopupMenu.Switch(false);
++ this._statusBin.child = this._switch.actor;
++ },
++
++ setStatus: function(text) {
++ if (text) {
++ this._statusLabel.text = text;
++ this._statusBin.child = this._statusLabel;
++ this.actor.reactive = false;
++ this.actor.can_focus = false;
++ } else {
++ this._statusBin.child = this._switch.actor;
++ this.actor.reactive = true;
++ this.actor.can_focus = true;
++ }
++ },
++
++ activate: function(event) {
++ if (this._switch.actor.mapped) {
++ this._switch.toggle();
++ this.emit('toggled', this._switch.state);
++ }
++
++ PopupMenu.PopupBaseMenuItem.prototype.activate.call(this, event);
++ },
++
++ get state() {
++ return this._switch.state;
++ },
++
++ setToggleState: function(newval) {
++ this._switch.setToggleState(newval);
++ }
++};
++
++function NMWiredSectionTitleMenuItem() {
++ this._init.apply(this, arguments);
++}
++
++NMWiredSectionTitleMenuItem.prototype = {
++ __proto__: NMDeviceTitleMenuItem.prototype,
++
++ updateForDevice: function(device) {
++ if (device) {
++ this._device = device;
++ this.setStatus(device.getStatusLabel());
++ this.setToggleState(device.connected);
++ } else
++ this.setStatus('');
++ },
++
++ activate: function(event) {
++ NMDeviceTitleMenuItem.prototype.activate.call(this, event);
++
++ if (!this._device) {
++ log ('Section title activated when there is more than one device, should be non reactive');
++ return;
++ }
++
++ if (this._switch.state)
++ this._device.activate();
++ else
++ this._device.deactivate();
++ }
++};
++
++function NMWirelessSectionTitleMenuItem() {
++ this._init.apply(this, arguments);
++}
++
++NMWirelessSectionTitleMenuItem.prototype = {
++ __proto__: NMDeviceTitleMenuItem.prototype,
++
++ _init: function(client, property, title, params) {
++ NMDeviceTitleMenuItem.prototype._init.call(this, title, params);
++
++ this._client = client;
++ this._property = property + '_enabled';
++ this._propertyHardware = property + '_hardware_enabled';
++ this._setEnabledFunc = property + '_set_enabled';
++
++ this._client.connect('notify::' + property + '-enabled', Lang.bind(this, this._propertyChanged));
++ this._client.connect('notify::' + property + '-hardware-enabled', Lang.bind(this, this._propertyChanged));
++
++ this._propertyChanged();
++ },
++
++ updateForDevice: function(device) {
++ // we show the switch
++ // - if there not just one device
++ // - if the switch is off
++ // - if the device is activated or disconnected
++ if (device && this._softwareEnabled && this._hardwareEnabled) {
++ let text = device.getStatusLabel();
++ this.setStatus(text);
++ } else
++ this.setStatus(null);
++ },
++
++ activate: function(event) {
++ NMDeviceTitleMenuItem.prototype.activate.call(this, event);
++
++ log ('setting enabled property, is ' + this._switch.state);
++ this._client[this._setEnabledFunc](this._switch.state);
++ },
++
++ _propertyChanged: function() {
++ this._softwareEnabled = this._client[this._property];
++ this._hardwareEnabled = this._client[this._propertyHardware];
++
++ let enabled = this._softwareEnabled && this._hardwareEnabled;
++ this.setToggleState(enabled);
++ if (!this._hardwareEnabled)
++ /* Translators: this indicates that wireless or wwan is disabled by hardware killswitch */
++ this.setStatus(_("disabled"));
++
++ this.emit('enabled-changed', enabled);
++ }
++};
++
+function NMDevice() {
+ throw new TypeError('Instantanting abstract class NMDevice');
+}
@@ -368,20 +532,31 @@ index 0000000..9700896
+ connection: connections[i],
+ name: connections[i]._name,
+ uuid: connections[i]._uuid,
++ timestamp: connections[i]._timestamp,
+ };
+ this._connections.push(obj);
+ }
++ this._connections.sort(function(one, two) {
++ return two.timestamp - one.timestamp;
++ });
+ this._activeConnection = null;
+ this._activeConnectionItem = null;
-+ this._disconnectItem = null;
+ this._autoConnectionItem = null;
-+ this._statusItem = null;
++ this._onlyOfCategory = false;
+
+ // private
+ this._activeConnectionPosition = activeConnectionPosition || 0;
+
-+ if (this.device)
-+ this.titleItem = new PopupMenu.PopupMenuItem(this.device._description, { reactive: false, style_class: 'popup-subtitle-menu-item' });
++ if (this.device) {
++ this.statusItem = new NMDeviceTitleMenuItem(this.device._description);
++ this._statusChanged = this.statusItem.connect('toggled', Lang.bind(this, function(item, state) {
++ if (state)
++ this.activate();
++ else
++ this.deactivate();
++ this.emit('enabled-changed');
++ }));
++ }
+ this.section = new PopupMenu.PopupMenuSection();
+
+ this._createSection();
@@ -398,11 +573,35 @@ index 0000000..9700896
+ this._stateChangedId = 0;
+ }
+
++ this._clearSection();
+ if (this.titleItem)
+ this.titleItem.destroy();
+ this.section.destroy();
+ },
+
++ deactivate: function() {
++ this.device.disconnect(null);
++ },
++
++ activate: function() {
++ if (this._activeConnection)
++ // nothing to do
++ return;
++
++ // pick the most recently used connection and connect to that
++ // or if no connections ever set, create an automatic one
++ if (this._connections.length > 0) {
++ this._client.activate_connection(this._connections[0].connection.path, this.device, null, null);
++ } else if (this._autoConnectionName) {
++ let connection = this._createAutomaticConnection();
++ this._client.add_and_activate_connection(connection, this.device, null, null);
++ }
++ },
++
++ get connected() {
++ return this.device.state == NetworkManager.DeviceState.ACTIVATED;
++ },
++
+ setActiveConnection: function(activeConnection) {
+ if (activeConnection == this._activeConnection)
+ // nothing to do
@@ -414,13 +613,8 @@ index 0000000..9700896
+ this._activeConnectionItem = null;
+ }
+
-+ if (this._disconnectItem) {
-+ this._disconnectItem.destroy();
-+ this._disconnectItem = null;
-+ }
-+
+ let previousActive = this._activeConnection;
-+ this._activeConnection == null;
++ this._activeConnection = null;
+
+ if (previousActive && previousActive._connection) {
+ // add the connection back as a normal one, by removing and adding it
@@ -441,9 +635,7 @@ index 0000000..9700896
+ }
+
+ this._activeConnection = activeConnection;
-+ this._createActiveConnectionItems();
-+ if (this._disconnectItem)
-+ this.section.addMenuItem(this._disconnectItem, this._activeConnectionPosition);
++ this._createActiveConnectionItem();
+ this.section.addMenuItem(this._activeConnectionItem, this._activeConnectionPosition);
+ }
+ },
@@ -459,26 +651,20 @@ index 0000000..9700896
+ connection: connection,
+ name: connection._name,
+ uuid: connection._uuid,
++ timestamp: connection._timestamp,
+ };
+ this._connections.push(obj);
++ this._connections.sort(function(one, two) {
++ return two.timestamp - one.timestamp;
++ });
+
-+ if (!this.device ||
-+ (this.device.state == NetworkManager.DeviceState.DISCONNECTED ||
-+ this.device.state == NetworkManager.DeviceState.ACTIVATED)) {
-+ // we're showing a connection list, so we need to append this one
-+ if (this._connections.length > 1) {
-+ // already showing real connections
-+ obj.item = this._createConnectionItem(obj);
-+ this.section.addMenuItem(obj.item);
-+ } else {
-+ // first connection in the list, destroy the automatic one
-+ this._clearSection();
-+ this._createSection();
-+ }
++ if (this._shouldShowConnectionList()) {
++ this._clearSection();
++ this._createSection();
+ }
+ },
+
-+ removeConnection: function(connection, skipCreateAuto) {
++ removeConnection: function(connection, skipCreateMenu) {
+ if (!connection._uuid) {
+ log('Cannot remove a connection without an UUID');
+ return;
@@ -494,7 +680,7 @@ index 0000000..9700896
+ obj.item.destroy();
+ this._connections.splice(pos, 1);
+
-+ if (this._connections.length == 0 && !skipCreateAuto) {
++ if (this._connections.length == 0 && !skipCreateMenu) {
+ // We need to show the automatic connection again
+ this._clearSection();
+ this._createSection();
@@ -505,6 +691,40 @@ index 0000000..9700896
+ throw new TypeError('Invoking pure virtual function NMDevice.connectionValid');
+ },
+
++ setEnabled: function(enabled) {
++ // do nothing by default, we want to keep the conneciton list visible
++ // in the majority of cases (wired, wwan, vpn)
++ },
++
++ getStatusLabel: function() {
++ switch(this.device.state) {
++ case NetworkManager.DeviceState.DISCONNECTED:
++ case NetworkManager.DeviceState.ACTIVATED:
++ return null;
++ case NetworkManager.DeviceState.PREPARE:
++ case NetworkManager.DeviceState.CONFIG:
++ case NetworkManager.DeviceState.IP_CONFIG:
++ return _("connecting...");
++ case NetworkManager.DeviceState.NEED_AUTH:
++ /* Translators: this is for network connections that require some kind of key or password */
++ return _("authentication required");
++ case NetworkManager.DeviceState.UNAVAILABLE:
++ if ((this.device.capabilities & NetworkManager.DeviceCapabilities.CARRIER_DETECT) &&
++ !this.device.carrier)
++ /* Translators: this is for wired network devices that are physically disconnected */
++ return _("cable unplugged");
++ else
++ /* Translators: this is for a network device that cannot be activated (for example it
++ is disabled by rfkill, or it has no coverage */
++ return _("unavailable");
++ case NetworkManager.DeviceState.FAILED:
++ return _("connection failed");
++ default:
++ log('Device state invalid, is %d'.format(this.device.state));
++ return 'invalid';
++ }
++ },
++
+ // protected
+ _createAutomaticConnection: function() {
+ throw new TypeError('Invoking pure virtual function NMDevice.createAutomaticConnection');
@@ -524,36 +744,23 @@ index 0000000..9700896
+ this.section.removeAll();
+ this._autoConnectionItem = null;
+ this._activeConnectionItem = null;
-+ this._disconnectItem = null;
-+ this._statusItem = null;
+ for (let i = 0; i < this._connections.length; i++) {
+ this._connections[i].item = null;
+ }
+ },
+
++ _shouldShowConnectionList: function() {
++ return (this.device.state == NetworkManager.DeviceState.DISCONNECTED ||
++ this.device.state == NetworkManager.DeviceState.ACTIVATED);
++ },
++
+ _createSection: function() {
-+ let status;
-+ if (!this.device ||
-+ (this.device.state == NetworkManager.DeviceState.DISCONNECTED ||
-+ this.device.state == NetworkManager.DeviceState.ACTIVATED))
-+ this._createConnectionList();
-+ else if (this.device.state != NetworkManager.DeviceState.UNMANAGED) {
-+ let title = this._getStatusLabel();
-+ this._statusItem = new PopupMenu.PopupMenuItem(title,
-+ { reactive: false,
-+ style_class: 'popup-inactive-menu-item'
-+ });
-+ this.section.addMenuItem(this._statusItem);
-+ }
-+ // else do nothing, the menu should remain empty
-+ },
-+
-+ _createConnectionList: function() {
++ if (!this._shouldShowConnectionList())
++ return;
++
+ if (this._activeConnection) {
-+ this._createActiveConnectionItems();
++ this._createActiveConnectionItem();
+ this.section.addMenuItem(this._activeConnectionItem);
-+ if (this._disconnectItem)
-+ this.section.addMenuItem(this._disconnectItem);
+ }
+ if (this._connections.length > 0) {
+ for(let j = 0; j < this._connections.length; ++j) {
@@ -583,20 +790,11 @@ index 0000000..9700896
+ return item;
+ },
+
-+ _createActiveConnectionItems: function() {
++ _createActiveConnectionItem: function() {
+ let title;
+ let active = this._activeConnection._connection;
-+ this._disconnectItem = null;
+ if (active) {
+ title = active._name;
-+ this._disconnectItem = new PopupMenu.PopupMenuItem(_("Disconnect"));
-+ this._disconnectItem.connect('activate', Lang.bind(this, function() {
-+ /* The correct approach would be
-+ this.client.deactivate_connection(this._activeConnection);
-+ but with this, NM insists in restarting the connection immediately
-+ */
-+ this.device.disconnect(null);
-+ }));
+ } else {
+ /* TRANSLATORS: this is the indication that a connection for another logged in user is active,
+ and we cannot access its settings (including the name) */
@@ -606,33 +804,6 @@ index 0000000..9700896
+ this._activeConnectionItem.setShowDot(true);
+ },
+
-+ // private
-+ _getStatusLabel: function() {
-+ switch(this.device.state) {
-+ case NetworkManager.DeviceState.DISCONNECTED:
-+ case NetworkManager.DeviceState.ACTIVATED:
-+ log('Attempt to show status for a disconnected / activate device, should be showing connection list instead');
-+ return 'invalid';
-+ case NetworkManager.DeviceState.PREPARE:
-+ case NetworkManager.DeviceState.CONFIG:
-+ case NetworkManager.DeviceState.IP_CONFIG:
-+ return _("connecting...");
-+ case NetworkManager.DeviceState.NEED_AUTH:
-+ return _("authentication required");
-+ case NetworkManager.DeviceState.UNAVAILABLE:
-+ if ((this.device.capabilities & NetworkManager.DeviceCapabilities.CARRIER_DETECT) &&
-+ !this.device.carrier)
-+ return _("network cable unplugged");
-+ else
-+ return _("network unavailable");
-+ case NetworkManager.DeviceState.FAILED:
-+ return _("connection failed");
-+ default:
-+ log('Device state invalid, is %d'.format(this.device.state));
-+ return 'invalid';
-+ }
-+ },
-+
+ deviceStateChanged: function(device, newstate, oldstate, reason) {
+ if (newstate == oldstate) {
+ log('device emitted state-changed without actually changing state');
@@ -644,10 +815,6 @@ index 0000000..9700896
+ }
+
+ switch(newstate) {
-+ case NetworkManager.DeviceState.UNMANAGED:
-+ // clear everything and be quiet
-+ this._clearSection();
-+ return;
+ case NetworkManager.DeviceState.NEED_AUTH:
+ // FIXME: make this have a real effect
+ // (currently we rely on a running nm-applet)
@@ -658,17 +825,12 @@ index 0000000..9700896
+ break;
+ }
+
-+ if (newstate != NetworkManager.DeviceState.DISCONNECTED &&
-+ newstate != NetworkManager.DeviceState.ACTIVATED &&
-+ this._statusItem) {
-+ // a transition between states that show the status label
-+ this._statusItem.label.text = this._getStatusLabel();
-+ return;
-+ }
++ this.statusItem.setStatus(this.getStatusLabel());
++ this.statusItem.setToggleState(this.connected);
+
-+ // just refresh everything
+ this._clearSection();
+ this._createSection();
++ this.emit('state-changed');
+ }
+};
+Signals.addSignalMethods(NMDevice.prototype);
@@ -710,6 +872,15 @@ index 0000000..9700896
+ autoconnect: true
+ }));
+ return connection;
++ },
++
++ _updateStatusItem: function() {
++ // ignore device state here, when there's only one device
++ // it will be taken care by NMApplet
++ if (this._onlyOfCategory)
++ this.statusItem.actor.hide();
++ else
++ this.statusItem.actor.show();
+ }
+};
+
@@ -723,11 +894,12 @@ index 0000000..9700896
+ _init: function(client, device, connections) {
+ let is_wwan = false;
+
++ this._enabled = true;
+ this.mobileDevice = null;
-+ this._connecitonType = 'ppp';
++ this._connectionType = 'ppp';
+
+ // FIXME: listen for this property changing and recreate modem stuff
-+ this._capabilities = device.current_capabilites;
++ this._capabilities = device.current_capabilities;
+ if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) {
+ is_wwan = true;
+ this.mobileDevice = new ModemManager.ModemGsm(device.udi);
@@ -736,7 +908,7 @@ index 0000000..9700896
+ is_wwan = true;
+ this.mobileDevice = new ModemManager.ModemCdma(device.udi);
+ this._connectionType = NetworkManager.SETTING_CDMA_SETTING_NAME;
-+ } else if (this._capabilites & NetworkManager.DeviceModemCapabilities.LTE) {
++ } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.LTE) {
+ is_wwan = true;
+ // FIXME: support signal quality
+ }
@@ -770,9 +942,32 @@ index 0000000..9700896
+ NMDevice.prototype._init.call(this, client, device, connections, 1);
+ },
+
++ setEnabled: function(enabled) {
++ this._enabled = enabled;
++ if (this.category == NMConnectionCategory.WWAN) {
++ if (enabled) {
++ // prevent "network unavailable" statuses
++ this.statusItem.setStatus(null);
++ } else
++ this.statusItem.setStatus(this.getStatusLabel());
++ }
++
++ NMDevice.prototype.setEnabled.call(this, enabled);
++ },
++
++ get connected() {
++ return this._enabled && this.device.state == NetworkManager.DeviceState.CONNECTED;
++ },
++
+ destroy: function() {
-+ if (this.mobileDevice)
-+ this.mobileDevice.disconnectAll();
++ if (this._operatorNameId) {
++ this.mobileDevice.disconnect(this._operatorNameId);
++ this._operatorNameId = 0;
++ }
++ if (this._signalQualityId) {
++ this.mobileDevice.disconnect(this._signalQualityId);
++ this._signalQualityId = 0;
++ }
+
+ NMDevice.prototype.destroy.call(this);
+ },
@@ -885,6 +1080,23 @@ index 0000000..9700896
+
+ get empty() {
+ return this._connections.length == 0;
++ },
++
++ get connected() {
++ return true;
++ },
++
++ _shouldShowConnectionList: function() {
++ return true;
++ },
++
++ deactivate: function() {
++ if (this._activeConnection)
++ this._client.deactivate_connection(this._activeConnection);
++ },
++
++ getStatusLabel: function() {
++ return null;
+ }
+};
+
@@ -957,6 +1169,59 @@ index 0000000..9700896
+ NMDevice.prototype.destroy.call(this);
+ },
+
++ setEnabled: function(enabled) {
++ if (enabled) {
++ this.statusItem.actor.show();
++ this.section.actor.show();
++ } else {
++ this.statusItem.actor.hide();
++ this.section.actor.hide();
++ }
++ },
++
++ activate: function() {
++ if (this._activeConnection)
++ // nothing to do
++ return;
++
++ // among all visible networks, pick the last recently used connection
++ let best = null;
++ let bestApObj = null;
++ let bestTime = 0;
++ for (let i = 0; i < this._networks.length; i++) {
++ let apObj = this._networks[i];
++ for (let j = 0; j < apObj.connections.length; j++) {
++ let connection = apObj.connections[j];
++ if (connection._timestamp > bestTime) {
++ best = connection;
++ bestTime = connection._timestamp;
++ bestApObj = apObj;
++ }
++ }
++ }
++
++ if (best) {
++ for (let i = 0; i < bestApObj.accessPoints.length; i++) {
++ let ap = bestApObj.accessPoints[i];
++ if (this._connectionValidForAP(best, ap)) {
++ this._client.activate_connection(best.path, this.device, ap.dbus_path, null);
++ break;
++ }
++ }
++ return;
++ }
++
++ // XXX: what else to do?
++ // for now, just pick a random network
++ // (this function is called in a corner case anyway, that is, only when
++ // the user toggles the switch and has more than one wireless device)
++ if (this._networks.length > 0) {
++ let connection = this._createAutomaticConnection(this._networks[0]);
++ let accessPoints = sortAccessPoints(this._networks[0].accessPoints);
++ this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null);
++ }
++ },
++
+ _findNetwork: function(ssid) {
+ for (let i = 0; i < this._networks.length; i++) {
+ if (ssidCompare(this._networks[i].ssid, ssid))
@@ -995,12 +1260,9 @@ index 0000000..9700896
+ }
+ }
+
-+ if (this.device.state == NetworkManager.DeviceState.DISCONNECTED ||
-+ this.device.state == NetworkManager.DeviceState.ACTIVATED) {
-+ // update everything (it would be too complicated to update just what has changed)
-+ this._clearSection();
-+ this._createConnectionList();
-+ }
++ // update everything
++ this._clearSection();
++ this._createSection();
+ },
+
+ _accessPointRemoved: function(device, accessPoint) {
@@ -1133,7 +1395,7 @@ index 0000000..9700896
+
+ if (forceupdate || (anyauto && !skipCreateAuto)) {
+ this._clearSection();
-+ this._createConnectionList();
++ this._createSection();
+ }
+ },
+
@@ -1226,7 +1488,7 @@ index 0000000..9700896
+ return wirelessSettings.ap_security_compatible(wirelessSecuritySettings, ap.flags, ap.wpa_flags, ap.rsn_flags, ap.mode);
+ },
+
-+ _createActiveConnectionItems: function() {
++ _createActiveConnectionItem: function() {
+ let activeAp = this.device.active_access_point;
+ let icon, title;
+ if (this._activeConnection._connection) {
@@ -1238,10 +1500,6 @@ index 0000000..9700896
+ this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(connection._name,
+ 'network-wireless-connected',
+ { reactive: false });
-+ this._disconnectItem = new PopupMenu.PopupMenuItem(_("Disconnect"));
-+ this._disconnectItem.connect('activate', Lang.bind(this, function() {
-+ this.device.disconnect(null);
-+ }));
+ } else {
+ // We cannot read the connection (due to ACL, or API incompatibility), but we still show signal if we have it
+ let menuItem;
@@ -1256,12 +1514,33 @@ index 0000000..9700896
+ this._activeConnectionItem.setShowDot(true);
+ },
+
-+ _createConnectionList: function() {
++ _createAutomaticConnection: function(apObj) {
++ let name;
++ let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid);
++ if (ssid) {
++ /* TRANSLATORS: this the automatic wireless connection name (including the network name) */
++ name = _("Auto %s").format(ssid);
++ } else
++ name = _("Auto wireless");
++
++ let connection = new NetworkManager.Connection();
++ connection.add_setting(new NetworkManager.SettingWireless());
++ connection.add_setting(new NetworkManager.SettingConnection({
++ id: name,
++ autoconnect: true, // NetworkManager will know to ignore this if appropriate
++ uuid: NetworkManager.utils_uuid_generate(),
++ type: NetworkManager.SETTING_WIRELESS_SETTING_NAME
++ }));
++ return connection;
++ },
++
++ _createSection: function() {
++ if (!this._shouldShowConnectionList())
++ return;
++
+ if(this._activeConnection) {
-+ this._createActiveConnectionItems();
++ this._createActiveConnectionItem();
+ this.section.addMenuItem(this._activeConnectionItem);
-+ if (this._disconnectItem)
-+ this.section.addMenuItem(this._disconnectItem);
+ }
+
+ let activeAp = this.device.active_access_point;
@@ -1269,6 +1548,9 @@ index 0000000..9700896
+ // that comes from NetworkManager
+ let activeApSsid = activeAp ? activeAp.get_ssid() : null;
+
++ // we want five access points in the menu, including the active one
++ let numItems = this._activeConnection ? 4 : 5;
++
+ for(let j = 0; j < this._networks.length; j++) {
+ let apObj = this._networks[j];
+ if(activeAp && ssidCompare(apObj.ssid, activeApSsid))
@@ -1289,29 +1571,13 @@ index 0000000..9700896
+ apObj.item = new NMNetworkMenuItem(apObj.accessPoints);
+ apObj.item._apObj = apObj;
+ apObj.item.connect('activate', Lang.bind(this, function() {
-+ let name;
-+ let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid);
-+ if (ssid) {
-+ /* TRANSLATORS: this the automatic wireless connection name (including the network name) */
-+ name = _("Auto %s").format(ssid);
-+ } else
-+ name = _("Auto wireless");
-+
-+ let connection = new NetworkManager.Connection();
-+ connection.add_setting(new NetworkManager.SettingWireless());
-+ connection.add_setting(new NetworkManager.SettingConnection({
-+ id: name,
-+ autoconnect: true, // NetworkManager will know to ignore this if appropriate
-+ uuid: NetworkManager.utils_uuid_generate(),
-+ type: NetworkManager.SETTING_WIRELESS_SETTING_NAME
-+ }));
-+
++ let connection = this._createAutomaticConnection(apObj);
+ let accessPoints = sortAccessPoints(apObj.accessPoints);
+ this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null)
+ }));
+ }
+
-+ if (j <= 5)
++ if (j < numItems)
+ this.section.addMenuItem(apObj.item);
+ else {
+ if (!this._overflowItem) {
@@ -1334,7 +1600,6 @@ index 0000000..9700896
+ PanelMenu.SystemStatusButton.prototype._init.call(this, 'network-error');
+
+ this._client = NMClient.Client.new();
-+ this._nmApplet = new NMAppletProxy(DBus.session, 'org.gnome.network-manager-applet', '/org/gnome/network-manager-applet');
+
+ this._statusSection = new PopupMenu.PopupMenuSection();
+ this._statusItem = new PopupMenu.PopupMenuItem('', { style_class: 'popup-inactive-menu-item', reactive: false });
@@ -1343,62 +1608,53 @@ index 0000000..9700896
+ this._client.networking_enabled = true;
+ }));
+ this._statusSection.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
++ this._statusSection.actor.hide();
+ this.menu.addMenuItem(this._statusSection);
+
-+ this._deviceSections = [ ];
++ this._devices = { };
+
-+ this._wiredSection = new PopupMenu.PopupMenuSection();
-+ this._wiredItem = new PopupMenu.PopupMenuItem(_("Wired networks"),
-+ { style_class: 'popup-subtitle-menu-item', reactive: false });
-+ this._wiredDevices = [ ];
-+
-+ this._wiredSection.addMenuItem(this._wiredItem);
-+ this._wiredSection.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-+ this._wiredSection.actor.hide();
-+ this._deviceSections.push(this._wiredSection);
-+ this.menu.addMenuItem(this._wiredSection);
-+
-+ this._wirelessSection = new PopupMenu.PopupMenuSection();
-+ this._wirelessDevices = [ ];
-+ this._makeToggleItem('wireless', _("Wireless networks"));
-+ this._wirelessSection.addMenuItem(this._wirelessItem);
++ this._devices.wired = {
++ section: new PopupMenu.PopupMenuSection(),
++ devices: [ ],
++ item: new NMWiredSectionTitleMenuItem(_("Wired"))
++ };
+
-+ let newAdhocWireless = new PopupMenu.PopupMenuItem(_("Create new wireless network..."));
-+ newAdhocWireless.connect('activate', Lang.bind(this, function() {
-+ this._nmApplet.CreateWirelessNetworkRemote();
-+ }));
-+ this._wirelessSection.addMenuItem(newAdhocWireless);
++ this._devices.wired.section.addMenuItem(this._devices.wired.item);
++ this._devices.wired.section.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
++ this._devices.wired.section.actor.hide();
++ this.menu.addMenuItem(this._devices.wired.section);
+
-+ let newHiddenWireless = new PopupMenu.PopupMenuItem(_("Other networks..."));
-+ newHiddenWireless.connect('activate', Lang.bind(this, function() {
-+ this._nmApplet.ConnectToHiddenNetworkRemote();
-+ }));
-+ this._wirelessSection.addMenuItem(newHiddenWireless);
-+
-+ this._wirelessSection.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-+ this._wirelessSection.actor.hide();
-+ this._deviceSections.push(this._wirelessSection);
-+ this.menu.addMenuItem(this._wirelessSection);
-+
-+ this._wwanSection = new PopupMenu.PopupMenuSection();
-+ this._wwanDevices = [ ];
-+ this._makeToggleItem('wwan', _("Mobile broadband"));
-+ this._wwanSection.addMenuItem(this._wwanItem);
-+ this._wwanSection.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-+
-+ this._wwanSection.actor.hide();
-+ this._deviceSections.push(this._wwanSection);
-+ this.menu.addMenuItem(this._wwanSection);
-+
-+ this._vpnDevice = new NMDeviceVPN();
-+ this._vpnItem = new PopupMenu.PopupMenuItem(_("VPN Connections"),
-+ { style_class: 'popup-subtitle-menu-item', reactive: false });
-+ this._vpnSection = new PopupMenu.PopupMenuSection();
-+ this._vpnSection.addMenuItem(this._vpnItem);
-+ this._vpnSection.addMenuItem(this._vpnDevice.section);
-+ this._vpnSection.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-+ this._deviceSections.push(this._vpnSection);
-+ this.menu.addMenuItem(this._vpnSection);
++ this._devices.wireless = {
++ section: new PopupMenu.PopupMenuSection(),
++ devices: [ ],
++ item: this._makeToggleItem('wireless', _("Wireless"))
++ };
++ this._devices.wireless.section.addMenuItem(this._devices.wireless.item);
++ this._devices.wireless.section.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
++ this._devices.wireless.section.actor.hide();
++ this.menu.addMenuItem(this._devices.wireless.section);
++
++ this._devices.wwan = {
++ section: new PopupMenu.PopupMenuSection(),
++ devices: [ ],
++ item: this._makeToggleItem('wwan', _("Mobile broadband"))
++ };
++ this._devices.wwan.section.addMenuItem(this._devices.wwan.item);
++ this._devices.wwan.section.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
++ this._devices.wwan.section.actor.hide();
++ this.menu.addMenuItem(this._devices.wwan.section);
++
++ this._devices.vpn = {
++ section: new PopupMenu.PopupMenuSection(),
++ device: new NMDeviceVPN(this._client),
++ item: new NMWiredSectionTitleMenuItem(_("VPN Connections"))
++ };
++ this._devices.vpn.item.updateForDevice(this._devices.vpn.device);
++ this._devices.vpn.section.addMenuItem(this._devices.vpn.item);
++ this._devices.vpn.section.addMenuItem(this._devices.vpn.device.section);
++ this._devices.vpn.section.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
++ this._devices.vpn.section.actor.hide();
++ this.menu.addMenuItem(this._devices.vpn.section);
+
+ this.menu.addAction(_("Network Settings"), function() {
+ Util.spawnDesktop('gnome-network-panel');
@@ -1465,44 +1721,38 @@ index 0000000..9700896
+ },
+
+ _makeToggleItem: function(type, title) {
-+ let enabledKey = type + '_enabled';
-+ let hardwareKey = type + '_hardware_enabled';
-+ let devicesKey = '_' + type + 'Devices';
-+ let setEnabledFunc = type + '_set_enabled';
-+
-+ let item = new PopupMenu.PopupSwitchMenuItem(title, false, { style_class: 'popup-subtitle-menu-item' });
-+ item.connect('toggled', Lang.bind(this, function(item, state) {
-+ this._client[setEnabledFunc](state);
++ let item = new NMWirelessSectionTitleMenuItem(this._client, type, title);
++ item.connect('enabled-changed', Lang.bind(this, function(item, enabled) {
++ let devices = this._devices[type].devices;
++ devices.forEach(function(dev) {
++ dev.setEnabled(enabled);
++ });
++ this._syncSectionTitle(type);
+ }));
++ return item;
++ },
+
-+ let handler = Lang.bind(this, function() {
-+ let software = this._client[enabledKey];
-+ let hardware = this._client[hardwareKey];
-+
-+ let enabled = software && hardware;
-+ item.setToggleState(enabled);
-+ item.actor.reactive = hardware;
-+ item.actor.can_focus = hardware;
-+
-+ let devices = this[devicesKey];
-+ for (let i = 0; i < devices.length; i++) {
-+ if (enabled) {
-+ if (devices.length > 1)
-+ devices[i].titleItem.actor.show();
-+ else
-+ devices[i].titleItem.actor.hide();
-+ devices[i].section.actor.show();
-+ } else {
-+ devices[i].titleItem.actor.hide();
-+ devices[i].section.actor.hide();
-+ }
-+ }
++ _syncSectionTitle: function(category) {
++ let devices = this._devices[category].devices;
++ let managedDevices = devices.filter(function(dev) {
++ return dev.device.state != NetworkManager.DeviceState.UNMANAGED;
+ });
-+
-+ this._client.connect('notify::' + type + '-enabled', handler);
-+ this._client.connect('notify::' + type + '-hardware-enabled', handler);
-+ this['_' + type + 'Item'] = item;
-+ handler();
++ let item = this._devices[category].item;
++ let section = this._devices[category].section;
++ if (managedDevices.length == 0)
++ section.actor.hide();
++ else {
++ section.actor.show();
++ if (managedDevices.length == 1) {
++ let dev = managedDevices[0];
++ dev.statusItem.actor.hide();
++ item.updateForDevice(dev);
++ } else {
++ managedDevices.forEach(function(dev) {
++ dev.statusItem.actor.show();
++ });
++ }
++ }
+ },
+
+ _readDevices: function() {
@@ -1525,8 +1775,7 @@ index 0000000..9700896
+ let wrapper = new wrapperClass(this._client, device, this._connections);
+ // FIXME: these notifications are duplicate with those exposed by nm-applet
+ // uncomment this code in 3.2, when we'll conflict with and kill nm-applet
-+ /*
-+ wrapper._networkLostId = wrapper.connect('network-lost', Lang.bind(this, function() {
++ /* wrapper._networkLostId = wrapper.connect('network-lost', Lang.bind(this, function(emitter) {
+ this._ensureSource();
+ let icon = new St.Icon({ icon_name: 'network-offline',
+ icon_type: St.IconType.SYMBOLIC,
@@ -1552,25 +1801,23 @@ index 0000000..9700896
+ _("Activation of network connection failed"),
+ { icon: icon });
+ this._source.notify(notification);
++ })); */
++ wrapper._stateChangedId = wrapper.connect('state-changed', Lang.bind(this, function(dev) {
++ this._syncSectionTitle(dev.category);
+ }));
+ wrapper._destroyId = wrapper.connect('destroy', function(wrapper) {
-+ wrapper.disconnect(wrapper._networkLostId);
-+ wrapper.disconnect(wrapper._activationFailedId);
-+ }); */
-+ let section = this['_' + wrapper.category + 'Section'];
-+ let devices = this['_' + wrapper.category + 'Devices'];
++ //wrapper.disconnect(wrapper._networkLostId);
++ //wrapper.disconnect(wrapper._activationFailedId);
++ wrapper.disconnect(wrapper._stateChangedId);
++ });
++ let section = this._devices[wrapper.category].section;
++ let devices = this._devices[wrapper.category].devices;
+
+ section.addMenuItem(wrapper.section, 1);
-+ section.addMenuItem(wrapper.titleItem, 1);
++ section.addMenuItem(wrapper.statusItem, 1);
+ devices.push(wrapper);
+
-+ // sync the visibility of titleItems
-+ for (let i = 0; i < devices.length; i++) {
-+ if (devices.length > 1)
-+ devices[i].titleItem.actor.show();
-+ else
-+ devices[i].titleItem.actor.hide();
-+ }
++ this._syncSectionTitle(wrapper.category);
+ } else
+ log('Invalid network device type, is ' + device.get_device_type());
+ },
@@ -1584,19 +1831,11 @@ index 0000000..9700896
+ let wrapper = device._delegate;
+ wrapper.destroy();
+
-+ let section = this['_' + wrapper.category + 'Section'];
-+ let devices = this['_' + wrapper.category + 'Devices'];
-+
++ let devices = this._devices[wrapper.category].devices;
+ let pos = devices.indexOf(wrapper);
+ devices.splice(pos, 1);
+
-+ // sync the visibility of titleItems
-+ for (let i = 0; i < devices.length; i++) {
-+ if (devices.length > 1)
-+ devices[i].titleItem.show();
-+ else
-+ devices[i].titleItem.hide();
-+ }
++ this._syncSectionTitle(wrapper.category)
+ },
+
+ _syncActiveConnections: function() {
@@ -1610,8 +1849,6 @@ index 0000000..9700896
+
+ for (let i = 0; i < closedConnections.length; i++) {
+ let active = closedConnections[i];
-+ if (active._connection)
-+ active._connection._active = null;
+ if (active._primaryDevice)
+ active._primaryDevice.setActiveConnection(null);
+ if (active._notifyStateId)
@@ -1660,9 +1897,6 @@ index 0000000..9700896
+ }
+ }
+
-+ if (a._connection)
-+ a._connection._active = this;
-+
+ if (a['default'])
+ default_ip4 = a;
+ if (a.default6)
@@ -1703,6 +1937,7 @@ index 0000000..9700896
+ _notifyActiveConnection: function(active) {
+ // FIXME: duplicate notifications when nm-applet is running
+ // This code will come back when nm-applet is killed
++ this._syncNMState();
+ return;
+
+ if (active.state == NetworkManager.ActiveConnectionState.ACTIVATED) {
@@ -1792,22 +2027,22 @@ index 0000000..9700896
+ if (pos != -1)
+ this._connections.splice(connection);
+
++ if (connection._everAdded)
++ this._hideConnection(connection);
++
+ connection._uuid = null;
+ connection.disconnect(connection._removedId);
+ connection.disconnect(connection._updatedId);
-+
-+ if (connection._everAdded)
-+ this._hideConnection(connection);
+ },
+
+ _hideConnection: function(connection) {
+ let section = connection._section;
+ if (section == NMConnectionCategory.VPN) {
-+ this._vpnDevice.removeConnection(connection);
-+ if (this._vpnDevice.empty)
-+ this._vpnSection.actor.hide();
++ this._devices.vpn.device.removeConnection(connection);
++ if (this._devices.vpn.device.empty)
++ this._devices.vpn.section.actor.hide();
+ } else {
-+ let devices = this['_' + section + 'Devices'];
++ let devices = this._devices[section].devices;
+ for (let i = 0; i < devices.length; i++)
+ devices[i].removeConnection(connection);
+ }
@@ -1823,14 +2058,15 @@ index 0000000..9700896
+ connection._section = this._ctypes[connection._type];
+ connection._name = connectionSettings.id;
+ connection._uuid = connectionSettings.uuid;
++ connection._timestamp = connectionSettings.timestamp;
+
+ let section = connection._section;
+ if (section == NMConnectionCategory.VPN) {
-+ this._vpnDevice.addConnection(connection);
-+ this._vpnSection.actor.show();
++ this._devices.vpn.device.addConnection(connection);
++ this._devices.vpn.section.actor.show();
+ connection._everAdded = true;
+ } else {
-+ let devices = this['_' + section + 'Devices'];
++ let devices = this._devices[section].devices;
+ for (let i = 0; i < devices.length; i++) {
+ if (devices[i].connectionValid(connection)) {
+ devices[i].addConnection(connection);
@@ -1841,34 +2077,25 @@ index 0000000..9700896
+ },
+
+ _hideDevices: function() {
-+ for (let i = 0; i < this._deviceSections.length; i++) {
-+ let item = this._deviceSections[i];
-+ item.actor.hide();
-+ }
++ this._devicesHidden = true;
++
++ for (let category in this._devices)
++ this._devices[category].section.actor.hide();
+ },
+
+ _showNormal: function() {
-+ this._statusSection.actor.hide();
-+
-+ if (this._wiredDevices.length > 0)
-+ this._wiredSection.actor.show();
-+ else
-+ this._wiredSection.actor.hide();
++ if (!this._devicesHidden) // nothing to do
++ return;
++ this._devicesHidden = false;
+
-+ if (this._wirelessDevices.length > 0)
-+ this._wirelessSection.actor.show();
-+ else
-+ this._wirelessSection.actor.hide();
++ this._statusSection.actor.hide();
+
-+ if (this._wwanDevices.length > 0)
-+ this._wwanSection.actor.show();
-+ else
-+ this._wwanSection.actor.hide();
++ this._syncSectionTitle('wired');
++ this._syncSectionTitle('wireless');
++ this._syncSectionTitle('wwan');
+
-+ if (!this._vpnDevice.empty)
-+ this._vpnSection.actor.show();
-+ else
-+ this._vpnSection.actor.hide();
++ if (!this._devices.vpn.device.empty)
++ this._devices.vpn.section.actor.show();
+ },
+
+ _syncNMState: function() {
@@ -1898,15 +2125,9 @@ index 0000000..9700896
+ let hasApIcon = false;
+ let hasMobileIcon = false;
+
-+ switch (this._client.state) {
-+ case NetworkManager.State.DISCONNECTED:
++ if (!mc) {
+ this.setIcon('network-offline');
-+ break;
-+ case NetworkManager.State.CONNECTING:
-+ if (!mc || mc.state != NetworkManager.ActiveConnectionState.ACTIVATING) {
-+ log('NetworkManager is connecting, but we have no ActiveConnection activating');
-+ break;
-+ }
++ } else if (mc.state == NetworkManager.ActiveConnectionState.ACTIVATING) {
+ switch (mc._section) {
+ case NMConnectionCategory.WWAN:
+ this.setIcon('network-cellular-acquiring');
@@ -1925,14 +2146,7 @@ index 0000000..9700896
+ this.setIcon('network-error');
+ log('Invalid active connection type ' + mc._section);
+ }
-+ break;
-+ case NetworkManager.State.CONNECTED_LOCAL:
-+ case NetworkManager.State.CONNECTED_SITE:
-+ case NetworkManager.State.CONNECTED_GLOBAL:
-+ if (!mc) {
-+ log('NetworkManager is connected, but reports no active connection');
-+ break;
-+ }
++ } else {
+ let dev;
+ switch (mc._section) {
+ case NMConnectionCategory.WIRELESS:
@@ -1964,7 +2178,7 @@ index 0000000..9700896
+ break;
+ }
+ case NMConnectionCategory.WIRED:
-+ this.setIcon('network-wired-symbolic');
++ this.setIcon('network-wired');
+ break;
+ case NMConnectionCategory.WWAN:
+ if (mc._type == NetworkManager.SETTING_BLUETOOTH_SETTING_NAME) {
@@ -1974,6 +2188,10 @@ index 0000000..9700896
+ }
+
+ dev = mc._primaryDevice;
++ if (!dev) {
++ log('Active connection with no primary device?');
++ break;
++ }
+ if (this._mobileUpdateId && this._mobileUpdateDevice != dev) {
+ this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
+ this._mobileUpdateDevice = dev.mobileDevice;
@@ -1992,9 +2210,6 @@ index 0000000..9700896
+ this.setIcon('network-error');
+ break;
+ }
-+ break;
-+ default:
-+ log('NetworkManager is in an invalid state: ' + this._client.state);
+ }
+
+ // cleanup stale signal connections
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index f44e67b..56f0b5b 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -92,7 +92,7 @@ src_prepare() {
ewarn "Adding support for the experimental NetworkManager applet."
ewarn "This needs the latest NetworkManager & nm-applet trunk."
ewarn "Report bugs about this to 'nirbheek' on #gentoo-desktop @ FreeNode."
- epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.3.patch"
+ epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.4.patch"
fi
epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-09 11:34 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-09 11:34 UTC (permalink / raw
To: gentoo-commits
commit: ef397a4902ffd41ba4e6258257a48f31fcb997aa
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 9 06:06:29 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Mar 9 11:21:36 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ef397a49
gnome-base/gnome-shell: 2.91.90 → 2.91.91
* Python is no longer needed, gnome-shell is now a binary
---
.../files/gnome-shell-2.91.91-fix-build.patch | 23 ++++++++++++
.../gnome-shell-2.91.91-fix-gnome-bluetooth.patch | 20 ++++++++++
...l-2.91.90.ebuild => gnome-shell-2.91.91.ebuild} | 39 ++++++++++----------
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 16 ++------
4 files changed, 67 insertions(+), 31 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch b/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch
new file mode 100644
index 0000000..c54eb10
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-build.patch
@@ -0,0 +1,23 @@
+From 49f6280645cdad7fa7f53633ce67ed5f7079a8dd Mon Sep 17 00:00:00 2001
+From: Dan Winship <danw@gnome.org>
+Date: Tue, 08 Mar 2011 16:47:14 +0000
+Subject: src: add more stuff to gnome_shell_real_LDADD
+
+to work with libtools that are more strict about not allowing
+transitive dependencies
+---
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 40ce5de..1c3e1b6 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -140,7 +140,7 @@ libgnome_shell_la_gir_sources = \
+ gnome_shell_real_SOURCES = \
+ main.c
+ gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
+-gnome_shell_real_LDADD = libgnome-shell.la
++gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
+ gnome_shell_real_DEPENDENCIES = libgnome-shell.la
+
+ ########################################
+--
+cgit v0.8.3.4
diff --git a/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-gnome-bluetooth.patch b/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-gnome-bluetooth.patch
new file mode 100644
index 0000000..3a6e994
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-2.91.91-fix-gnome-bluetooth.patch
@@ -0,0 +1,20 @@
+--- src/main.c
++++ src/main.c
+@@ -458,3 +458,17 @@ main (int argc, char **argv)
+
+ return meta_run ();
+ }
++
++#if HAVE_BLUETOOTH
++/* HACK:
++ Add a non-static function that calls into libgnome-bluetooth-applet.so,
++ to avoid the linker being too smart and removing the dependency.
++ This function is never actually called.
++*/
++extern GType bluetooth_applet_get_type(void);
++void _shell_link_to_bluetooth(void);
++
++void _shell_link_to_bluetooth(void) {
++ bluetooth_applet_get_type();
++}
++#endif
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
similarity index 76%
rename from gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild
rename to gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
index 242e352..f1ad0a0 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.91.ebuild
@@ -5,9 +5,8 @@
EAPI="2"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
-PYTHON_DEPEND="2:2.5"
-inherit gnome2 python
+inherit autotools eutils gnome2
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
HOMEPAGE="http://live.gnome.org/GnomeShell"
@@ -24,6 +23,7 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support.
+# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=dev-libs/gjs-0.7.11
>=dev-libs/gobject-introspection-0.10.1
@@ -31,14 +31,14 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=x11-libs/gtk+-3.0.0:3[introspection]
>=media-libs/clutter-1.5.15[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
- >=gnome-base/gsettings-desktop-schemas-0.1.7
+ >=gnome-base/gsettings-desktop-schemas-0.1.7.1
>=gnome-extra/evolution-data-server-2.91.6
>=media-libs/gstreamer-0.10.16
>=media-libs/gst-plugins-base-0.10.16
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.90[introspection]
+ >=x11-wm/mutter-2.91.91[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -55,15 +55,21 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
x11-libs/libXfixes
x11-apps/mesa-progs"
# Runtime-only deps are probably incomplete and approximate.
+# Each block:
+# 1. Introspection stuff + dconf needed via imports.gi.*
+# 2. gnome-session is needed for gnome-session-quit
+# 3. Don't remember
+# 4. nm-applet is needed for auth prompting and the wireless connection dialog
RDEPEND="${COMMON_DEPEND}
- dev-python/dbus-python
- dev-python/gconf-python
>=gnome-base/dconf-0.4.1
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91
>=gnome-base/libgnomekbd-2.91.4[introspection]
- sys-power/upower[introspection]"
+ sys-power/upower[introspection]
+
+ >=gnome-base/gnome-session-2.91.91
+
+ >=gnome-base/gnome-settings-daemon-2.91
+ >=gnome-base/gnome-control-center-2.91"
DEPEND="${COMMON_DEPEND}
sys-devel/gettext
>=dev-util/pkgconfig-0.22
@@ -72,21 +78,16 @@ DEPEND="${COMMON_DEPEND}
DOCS="AUTHORS README"
# Don't error out on warnings
G2CONF="--enable-compile-warnings=maximum
---disable-schemas-compile"
-
-pkg_setup() {
- python_set_active_version 2
-}
+--disable-schemas-compile
+--disable-jhbuild-wrapper-script"
src_prepare() {
+ epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${P}-fix-build.patch"
+ eautoreconf
gnome2_src_prepare
}
-src_install() {
- python_convert_shebangs 2 tools/check-for-missing.py src/gnome-shell
- gnome2_src_install
-}
-
pkg_postinst() {
if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \
! has_version 'media-plugins/gst-plugins-vp8'; then
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index e911002..5708018 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -5,9 +5,8 @@
EAPI="2"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
-PYTHON_DEPEND="2:2.5"
-inherit eutils gnome2 python
+inherit gnome2
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
HOMEPAGE="http://live.gnome.org/GnomeShell"
@@ -40,7 +39,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.90.1[introspection]
+ >=x11-wm/mutter-2.91.91[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -87,10 +86,6 @@ G2CONF="--enable-compile-warnings=maximum
--disable-schemas-compile
--disable-jhbuild-wrapper-script"
-pkg_setup() {
- python_set_active_version 2
-}
-
src_prepare() {
if use nm-applet; then
# See https://bugzilla.gnome.org/show_bug.cgi?id=621707"
@@ -100,12 +95,9 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.2.patch"
fi
- gnome2_src_prepare
-}
+ epatch "${FILESDIR}/${PN}-fix-gnome-bluetooth.patch"
-src_install() {
- python_convert_shebangs 2 tools/check-for-missing.py src/gnome-shell
- gnome2_src_install
+ gnome2_src_prepare
}
pkg_postinst() {
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-03-04 10:23 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-03-04 10:23 UTC (permalink / raw
To: gentoo-commits
commit: faffb51f8b8bc477d4e47b910042912be6a81aad
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 3 09:01:33 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Thu Mar 3 09:15:44 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=faffb51f
gnome-base/gnome-shell: update live ebuild, and nm-applet patch
---
...> gnome-shell-experimental-nm-applet-1.2.patch} | 8 ++++----
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 5 +++--
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch
similarity index 99%
rename from gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch
rename to gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch
index 546a539..a1af852 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.2.patch
@@ -218,10 +218,10 @@ index 0000000..ecc80cc
+};
+
+const NMAppletIface = {
-+ name: 'org.freedesktop.NetworkManager.Applet',
++ name: 'org.gnome.network-manager-applet',
+ methods: [
+ { name: 'ConnectToHiddenNetwork', outSignature: '', inSignature: '' },
-+ { name: 'CreateWirelessNetwork', outSignature: '', inSignature: '' },
++ { name: 'CreateWifiNetwork', outSignature: '', inSignature: '' },
+ ]
+};
+const NMAppletProxy = DBus.makeProxyClass(NMAppletIface);
@@ -1295,7 +1295,7 @@ index 0000000..ecc80cc
+ PanelMenu.SystemStatusButton.prototype._init.call(this, 'network-error');
+
+ this._client = NMClient.Client.new();
-+ this._nmApplet = new NMAppletProxy(DBus.session, 'org.freedesktop.NetworkManager.Applet', '/org/freedesktop/NetworkManager/Applet');
++ this._nmApplet = new NMAppletProxy(DBus.session, 'org.gnome.network-manager-applet', '/org/gnome/network-manager-applet');
+
+ this._statusSection = new PopupMenu.PopupMenuSection();
+ this._statusItem = new PopupMenu.PopupMenuItem('', { style_class: 'popup-inactive-menu-item', reactive: false });
@@ -2002,4 +2002,4 @@ index 778db20..6ad230d 100644
+ </autotools>
</moduleset>
--
-1.7.4
\ No newline at end of file
+1.7.4
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 399a7ec..33cc7f1 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -86,7 +86,8 @@ DEPEND="${COMMON_DEPEND}
DOCS="AUTHORS README"
# Don't error out on warnings
G2CONF="--enable-compile-warnings=maximum
---disable-schemas-compile"
+--disable-schemas-compile
+--disable-jhbuild-wrapper-script"
pkg_setup() {
python_set_active_version 2
@@ -98,7 +99,7 @@ src_prepare() {
ewarn "Adding support for the experimental NetworkManager applet."
ewarn "This needs the latest NetworkManager & nm-applet trunk."
ewarn "Report bugs about this to 'nirbheek' on #gentoo-desktop @ FreeNode."
- epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.1.patch"
+ epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.2.patch"
fi
gnome2_src_prepare
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-02-28 20:25 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-02-28 20:25 UTC (permalink / raw
To: gentoo-commits
commit: 144f8928be9bc1283eaca0e190da45f8ead1cddd
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 28 20:18:46 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Mon Feb 28 20:18:46 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=144f8928
gnome-base/gnome-shell: update patch and shell recorder elog
---
...> gnome-shell-experimental-nm-applet-1.1.patch} | 182 +++++++++++---------
gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild | 2 +-
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 7 +-
3 files changed, 109 insertions(+), 82 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.0.patch b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch
similarity index 93%
rename from gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.0.patch
rename to gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch
index 15a560b..546a539 100644
--- a/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.0.patch
+++ b/gnome-base/gnome-shell/files/gnome-shell-experimental-nm-applet-1.1.patch
@@ -1,4 +1,4 @@
-From f8a4fa0646aa4ab620331c0bbcae4334173b614d Mon Sep 17 00:00:00 2001
+From 9fb864ff75921974ad1f09ae75dcd6cc94ac90ef Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Tue, 25 Jan 2011 22:08:12 +0100
Subject: [PATCH] Status area: add NetworkManager indicator
@@ -14,17 +14,17 @@ https://bugzilla.gnome.org/show_bug.cgi?id=621707
js/Makefile.am | 2 +
js/misc/modemManager.js | 103 +++
js/ui/panel.js | 3 +-
- js/ui/status/network.js | 1754 +++++++++++++++++++++++++++++++++++++++
+ js/ui/status/network.js | 1780 +++++++++++++++++++++++++++++++++++++++
tools/build/gnome-shell.modules | 17 +
- 6 files changed, 1886 insertions(+), 1 deletions(-)
+ 6 files changed, 1912 insertions(+), 1 deletions(-)
create mode 100644 js/misc/modemManager.js
create mode 100644 js/ui/status/network.js
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
-index 1da6619..8f0fb52 100644
+index c7d875a..78f1361 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
-@@ -154,6 +154,14 @@ StTooltip StLabel {
+@@ -158,6 +158,14 @@ StTooltip StLabel {
spacing: .5em;
}
@@ -40,7 +40,7 @@ index 1da6619..8f0fb52 100644
icon-size: 1.14em;
}
diff --git a/js/Makefile.am b/js/Makefile.am
-index e4a4145..53f80d4 100644
+index 55bb111..a085bfc 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
@@ -8,6 +8,7 @@ nobase_dist_js_DATA = \
@@ -51,7 +51,7 @@ index e4a4145..53f80d4 100644
misc/params.js \
misc/util.js \
perf/core.js \
-@@ -49,6 +50,7 @@ nobase_dist_js_DATA = \
+@@ -50,6 +51,7 @@ nobase_dist_js_DATA = \
ui/statusMenu.js \
ui/status/accessibility.js \
ui/status/keyboard.js \
@@ -169,7 +169,7 @@ index 0000000..b368511
+};
+Signals.addSignalMethods(ModemCdma.prototype);
diff --git a/js/ui/panel.js b/js/ui/panel.js
-index 1c23ae8..ab7a656 100644
+index d1bf3fd..76c10f1 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -38,7 +38,8 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
@@ -184,10 +184,10 @@ index 1c23ae8..ab7a656 100644
if (Config.HAVE_BLUETOOTH)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
new file mode 100644
-index 0000000..04e9c87
+index 0000000..ecc80cc
--- /dev/null
+++ b/js/ui/status/network.js
-@@ -0,0 +1,1754 @@
+@@ -0,0 +1,1780 @@
+// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
+const ByteArray = imports.byteArray;
+const DBus = imports.dbus;
@@ -282,7 +282,7 @@ index 0000000..04e9c87
+ this.bestAP = accessPoints[0];
+
+ let ssid = this.bestAP.get_ssid();
-+ title = title || NetworkManager.utils_ssid_to_utf8(ssid, ssid.length) || _("<unknown>");
++ title = title || NetworkManager.utils_ssid_to_utf8(ssid) || _("<unknown>");
+
+ PopupMenu.PopupImageMenuItem.prototype._init.call(this, title, this._getIcon(), params);
+
@@ -697,40 +697,59 @@ index 0000000..04e9c87
+ }
+};
+
-+function NMDeviceWWAN() {
++function NMDeviceModem() {
+ this._init.apply(this, arguments);
+}
+
-+NMDeviceWWAN.prototype = {
++NMDeviceModem.prototype = {
+ __proto__: NMDevice.prototype,
+
+ _init: function(client, device, connections) {
-+ this._autoConnectionName = _("New Mobile Broadband connection...");
-+ this.category = NMConnectionCategory.WWAN;
++ let is_wwan = false;
++
++ this.mobileDevice = null;
++ this._connecitonType = 'ppp';
+
-+ if (device instanceof NMClient.GsmDevice) {
++ // FIXME: listen for this property changing and recreate modem stuff
++ this._capabilities = device.current_capabilites;
++ if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) {
++ is_wwan = true;
+ this.mobileDevice = new ModemManager.ModemGsm(device.udi);
+ this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME;
-+ } else if (device instanceof NMClient.CdmaDevice) {
++ } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.CDMA_EVDO) {
++ is_wwan = true;
+ this.mobileDevice = new ModemManager.ModemCdma(device.udi);
+ this._connectionType = NetworkManager.SETTING_CDMA_SETTING_NAME;
++ } else if (this._capabilites & NetworkManager.DeviceModemCapabilites.LTE) {
++ is_wwan = true;
++ // FIXME: support signal quality
+ }
+
-+ this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
-+ if (this._operatorItem) {
-+ let name = this.mobileDevice.operator_name;
-+ if (name) {
-+ this._operatorItem.label.text = name;
-+ this._operatorItem.actor.show();
-+ } else
-+ this._operatorItem.actor.hide();
-+ }
-+ }));
-+ this.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
-+ if (this._operatorItem) {
-+ this._operatorItem.setIcon(this._getSignalIcon());
-+ }
-+ }));
++ if (is_wwan) {
++ this.category = NMConnectionCategory.WWAN;
++ this._autoConnectionName = _("New Mobile Broadband connection...");
++ } else {
++ this.category = NMConnectionCategory.WIRED;
++ this._autoConnectionName = _("Auto dial-up");
++ }
++
++ if (this.mobileDevice) {
++ this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
++ if (this._operatorItem) {
++ let name = this.mobileDevice.operator_name;
++ if (name) {
++ this._operatorItem.label.text = name;
++ this._operatorItem.actor.show();
++ } else
++ this._operatorItem.actor.hide();
++ }
++ }));
++ this.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
++ if (this._operatorItem) {
++ this._operatorItem.setIcon(this._getSignalIcon());
++ }
++ }));
++ }
+
+ NMDevice.prototype._init.call(this, client, device, connections, 1);
+ },
@@ -740,12 +759,14 @@ index 0000000..04e9c87
+ },
+
+ _createSection: function() {
-+ NMDevice.prototype._createSection.call(this);
++ if (this.mobileDevice) {
++ this._operatorItem = new PopupMenu.PopupImageMenuItem(this.mobileDevice.operator_name || '',
++ this._getSignalIcon(),
++ { reactive: false });
++ this.section.addMenuItem(this._operatorItem);
++ }
+
-+ this._operatorItem = new PopupMenu.PopupImageMenuItem(this.mobileDevice.operator_name || '',
-+ this._getSignalIcon(),
-+ { reactive: false });
-+ this.section.addMenuItem(this._operatorItem, 0);
++ NMDevice.prototype._createSection.call(this);
+ },
+
+ clearSection: function() {
@@ -762,6 +783,7 @@ index 0000000..04e9c87
+ // FIXME: we need to summon the mobile wizard here
+ // or NM will not have the necessary parameters to complete the connection
+ // (the same FIXME is currently in nm-applet, actually)
++ // (this does not apply to dial-up)
+
+ let connection = new NetworkManager.Connection;
+ connection._uuid = NetworkManager.utils_uuid_generate();
@@ -1218,7 +1240,7 @@ index 0000000..04e9c87
+ if (apObj.connections.length == 1)
+ apObj.item = this._createAPItem(apObj.connections[0], apObj, false);
+ else {
-+ let title = NetworkManager.utils_ssid_to_utf8(apObj.ssid, apObj.ssid.length) || _("<unknown>");
++ let title = NetworkManager.utils_ssid_to_utf8(apObj.ssid) || _("<unknown>");
+ apObj.item = new PopupMenu.PopupSubMenuMenuItem(title);
+ apObj.item._apObj = apObj;
+ for (let i = 0; i < apObj.connections.length; i++)
@@ -1229,7 +1251,7 @@ index 0000000..04e9c87
+ apObj.item._apObj = apObj;
+ apObj.item.connect('activate', Lang.bind(this, function() {
+ let name;
-+ let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid, apObj.ssid.length);
++ let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid);
+ if (ssid) {
+ /* TRANSLATORS: this the automatic wireless connection name (including the network name) */
+ name = _("Auto %s").format(ssid);
@@ -1356,16 +1378,16 @@ index 0000000..04e9c87
+ this._dtypes = { };
+ this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired;
+ this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
-+ this._dtypes[NetworkManager.DeviceType.GSM] = NMDeviceWWAN;
-+ this._dtypes[NetworkManager.DeviceType.CDMA] = NMDeviceWWAN;
++ this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
+ this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
-+ // FIXME: WWAN support (if enabled)
++ // FIXME: WiMax support (if enabled)
+
+ // Connection types
+ this._ctypes = { };
+ this._ctypes[NetworkManager.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS;
+ this._ctypes[NetworkManager.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED;
+ this._ctypes[NetworkManager.SETTING_PPPOE_SETTING_NAME] = NMConnectionCategory.WIRED;
++ this._ctypes[NetworkManager.SETTING_PPP_SETTING_NAME] = NMConnectionCategory.WIRED;
+ this._ctypes[NetworkManager.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN;
+ this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
+ this._ctypes[NetworkManager.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN;
@@ -1631,42 +1653,46 @@ index 0000000..04e9c87
+
+ _notifyActiveConnection: function(active) {
+ if (active.state == NetworkManager.ActiveConnectionState.ACTIVATED) {
-+ this._ensureSource();
+
-+ let icon;
-+ let banner;
-+ switch (active._section) {
-+ case NMConnectionCategory.WWAN:
-+ icon = 'network-cellular-signal-excellent';
-+ banner = _("You're now connected to mobile broadband connection '%s'").format(active._connection._name);
-+ break;
-+ case NMConnectionCategory.WIRELESS:
-+ icon = 'network-wireless-signal-excellent';
-+ banner = _("You're now connected to wireless network '%s'").format(active._connection._name);
-+ break;
-+ case NMConnectionCategory.WIRED:
-+ icon = 'network-wired';
-+ banner = _("You're now connected to wired network '%s'").format(active._connection._name);
-+ break;
-+ case NMConnectionCategory.VPN:
-+ icon = 'network-vpn';
-+ banner = _("You're now connected to VPN network '%s'").format(active._connection._name);
-+ break;
-+ default:
-+ // a fallback for a generic 'connected' icon
-+ icon = 'network-transmit-receive';
-+ banner = _("You're now connected to '%s'").format(active._connection._name);
-+ }
++ // notify only connections that are visible
++ if (active._connection) {
++ this._ensureSource();
+
-+ let iconActor = new St.Icon({ icon_name: icon,
-+ icon_type: St.IconType.SYMBOLIC,
-+ icon_size: this._source.ICON_SIZE
-+ });
-+ let notification = new MessageTray.Notification(this._source,
-+ _("Connection estabilished"),
-+ banner,
-+ { icon: iconActor });
-+ this._source.notify(notification);
++ let icon;
++ let banner;
++ switch (active._section) {
++ case NMConnectionCategory.WWAN:
++ icon = 'network-cellular-signal-excellent';
++ banner = _("You're now connected to mobile broadband connection '%s'").format(active._connection._name);
++ break;
++ case NMConnectionCategory.WIRELESS:
++ icon = 'network-wireless-signal-excellent';
++ banner = _("You're now connected to wireless network '%s'").format(active._connection._name);
++ break;
++ case NMConnectionCategory.WIRED:
++ icon = 'network-wired';
++ banner = _("You're now connected to wired network '%s'").format(active._connection._name);
++ break;
++ case NMConnectionCategory.VPN:
++ icon = 'network-vpn';
++ banner = _("You're now connected to VPN network '%s'").format(active._connection._name);
++ break;
++ default:
++ // a fallback for a generic 'connected' icon
++ icon = 'network-transmit-receive';
++ banner = _("You're now connected to '%s'").format(active._connection._name);
++ }
++
++ let iconActor = new St.Icon({ icon_name: icon,
++ icon_type: St.IconType.SYMBOLIC,
++ icon_size: this._source.ICON_SIZE
++ });
++ let notification = new MessageTray.Notification(this._source,
++ _("Connection estabilished"),
++ banner,
++ { icon: iconActor });
++ this._source.notify(notification);
++ }
+
+ if (active._stateChangeId) {
+ active.disconnect(active._stateChangeId);
@@ -1943,7 +1969,7 @@ index 0000000..04e9c87
+ }
+};
diff --git a/tools/build/gnome-shell.modules b/tools/build/gnome-shell.modules
-index e8b5493..2f44c5d 100644
+index 778db20..6ad230d 100644
--- a/tools/build/gnome-shell.modules
+++ b/tools/build/gnome-shell.modules
@@ -9,6 +9,8 @@
@@ -1955,7 +1981,7 @@ index e8b5493..2f44c5d 100644
<repository type="tarball" name="cairo.org"
href="http://cairographics.org/"/>
<repository type="tarball" name="0pointer.de"
-@@ -315,4 +317,19 @@
+@@ -329,4 +331,19 @@
</dependencies>
</autotools>
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild
index 19872b0..242e352 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.90.ebuild
@@ -93,6 +93,6 @@ pkg_postinst() {
ewarn "To make use of GNOME Shell's built-in screen recording utility,"
ewarn "you need to either install >=media-libs/gst-plugins-good-0.10.23"
ewarn "and media-plugins/gst-plugins-vp8, or use dconf-editor to change"
- ewarn "/apps/gnome-shell/recorder/pipeline to what you want to use."
+ ewarn "apps.gnome-shell.recorder/pipeline to what you want to use."
fi
}
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 8411da8..399a7ec 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -24,6 +24,7 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support.
+# latest mutter is needed due to commit 474ff2e997
COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=dev-libs/gjs-0.7.11
>=dev-libs/gobject-introspection-0.10.1
@@ -38,7 +39,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=net-libs/telepathy-glib-0.13.12[introspection]
>=net-wireless/gnome-bluetooth-2.90.0[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/mutter-2.91.90[introspection]
+ >=x11-wm/mutter-2.91.90.1[introspection]
dev-libs/dbus-glib
dev-libs/libxml2:2
@@ -97,7 +98,7 @@ src_prepare() {
ewarn "Adding support for the experimental NetworkManager applet."
ewarn "This needs the latest NetworkManager & nm-applet trunk."
ewarn "Report bugs about this to 'nirbheek' on #gentoo-desktop @ FreeNode."
- epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.0.patch"
+ epatch "${FILESDIR}/${PN}-experimental-nm-applet-1.1.patch"
fi
gnome2_src_prepare
@@ -114,6 +115,6 @@ pkg_postinst() {
ewarn "To make use of GNOME Shell's built-in screen recording utility,"
ewarn "you need to either install >=media-libs/gst-plugins-good-0.10.23"
ewarn "and media-plugins/gst-plugins-vp8, or use dconf-editor to change"
- ewarn "/apps/gnome-shell/recorder/pipeline to what you want to use."
+ ewarn "apps.gnome-shell.recorder/pipeline to what you want to use."
fi
}
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-02-22 19:44 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-02-22 19:44 UTC (permalink / raw
To: gentoo-commits
commit: edcbc1475ed116e96ff6becb3bf9a67d07247df4
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 22 19:41:56 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue Feb 22 19:44:10 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=edcbc147
gnome-base/gnome-shell: remove old, broken version
* Sorry guys, you'll have to use the live version till the shell guys release 2.91.90
* gnome-shell-2.91.6 won't run with gsettings-desktop-schemas-0.1.7
---
.../files/gnome-shell-2.91.6-as-needed.patch | 34 --------
.../gnome-shell/gnome-shell-2.91.6-r1.ebuild | 80 --------------------
2 files changed, 0 insertions(+), 114 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch b/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch
deleted file mode 100644
index 085baa2..0000000
--- a/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From b6749f4b606470bec455b4d0bd1f15d8667dea3c Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna@src.gnome.org>
-Date: Mon, 24 Jan 2011 17:39:45 +0000
-Subject: BluetoothStatus: depend more on libgnome-bluetooth-applet
-
-Ensure that a dependency is generated even when using --as-needed,
-by adding a fake function that calls into the library.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=639324
----
-diff --git a/src/gnome-shell-plugin.c b/src/gnome-shell-plugin.c
-index 96075f4..8d85fa2 100644
---- a/src/gnome-shell-plugin.c
-+++ b/src/gnome-shell-plugin.c
-@@ -670,3 +670,17 @@ MetaPluginInfo *gnome_shell_plugin_plugin_info (MetaPlugin *plugin)
-
- return &info;
- }
-+
-+#if HAVE_BLUETOOTH
-+/* HACK:
-+ Add a non-static function that calls into libgnome-bluetooth-applet.so,
-+ to avoid the linker being too smart and removing the dependency.
-+ This function is never actually called.
-+*/
-+extern GType bluetooth_applet_get_type(void);
-+void _shell_link_to_bluetooth(void);
-+
-+void _shell_link_to_bluetooth(void) {
-+ bluetooth_applet_get_type();
-+}
-+#endif
---
-cgit v0.8.3.4
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild
deleted file mode 100644
index e3db9b7..0000000
--- a/gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="2"
-GCONF_DEBUG="no"
-GNOME2_LA_PUNT="yes"
-PYTHON_DEPEND="2:2.5"
-
-inherit eutils gnome2 python
-
-DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
-HOMEPAGE="http://live.gnome.org/GnomeShell"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE=""
-if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
- KEYWORDS=""
-else
- KEYWORDS="~amd64 ~x86"
-fi
-
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
-# FIXME: Automagic gnome-bluetooth[introspection] support. Also gnome bug 637935
-# gtk+-2.99.3 is needed for gtk/gtkx.h
-COMMON_DEPEND=">=dev-libs/glib-2.25.9
- x11-libs/gdk-pixbuf:2[introspection]
- >=x11-libs/gtk+-2.99.3:3[introspection]
- >=media-libs/clutter-1.5.15[introspection]
- >=gnome-base/gnome-desktop-2.91.2:3
- >=dev-libs/gobject-introspection-0.10.1
- >=gnome-extra/evolution-data-server-2.91.6
-
- dev-libs/dbus-glib
- >=dev-libs/gjs-0.7.8
- dev-libs/libxml2:2
- x11-libs/pango[introspection]
- dev-libs/libcroco:0.6
-
- gnome-base/gconf[introspection]
- gnome-base/gnome-menus
- gnome-base/librsvg
- >=media-libs/gstreamer-0.10.16
- >=media-libs/gst-plugins-base-0.10.16
- media-libs/libcanberra
- media-sound/pulseaudio
- >=net-wireless/gnome-bluetooth-2.90.0[introspection]
-
- x11-libs/startup-notification
- x11-libs/libXfixes
- >=x11-wm/mutter-2.91.4[introspection]
- x11-apps/mesa-progs
-
- dev-python/dbus-python
- dev-python/gconf-python"
-# Runtime-only deps are probably incomplete and approximate
-RDEPEND="${COMMON_DEPEND}
- x11-libs/gdk-pixbuf[introspection]
- >=gnome-base/dconf-0.4.1
- >=gnome-base/gnome-settings-daemon-2.91
- >=gnome-base/gnome-control-center-2.91
- >=gnome-base/libgnomekbd-2.91.4[introspection]"
-DEPEND="${COMMON_DEPEND}
- sys-devel/gettext
- >=dev-util/pkgconfig-0.22
- >=dev-util/intltool-0.26
- gnome-base/gnome-common"
-DOCS="AUTHORS README"
-# Don't error out on warnings
-G2CONF="--enable-compile-warnings=maximum
---disable-schemas-compile"
-
-src_prepare() {
- gnome2_src_prepare
-
- # Taken from upstream, remove for next release, bug 352466
- epatch "${FILESDIR}/${P}-as-needed.patch"
-}
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/
@ 2011-02-18 6:10 Nirbheek Chauhan
0 siblings, 0 replies; 25+ messages in thread
From: Nirbheek Chauhan @ 2011-02-18 6:10 UTC (permalink / raw
To: gentoo-commits
commit: b1406e645c3349be2653592ecc600962f7581493
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 18 06:00:06 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Feb 18 06:05:44 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=b1406e64
gnome-base/gnome-shell: fix startup problems, bug 352466
* Also add a missing dep, and fix the gnome-bluetooth dependency
---
.../files/gnome-shell-2.91.6-as-needed.patch | 34 ++++++++++++++++++++
...-2.91.6.ebuild => gnome-shell-2.91.6-r1.ebuild} | 12 ++++++-
gnome-base/gnome-shell/gnome-shell-9999.ebuild | 3 +-
3 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch b/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch
new file mode 100644
index 0000000..085baa2
--- /dev/null
+++ b/gnome-base/gnome-shell/files/gnome-shell-2.91.6-as-needed.patch
@@ -0,0 +1,34 @@
+From b6749f4b606470bec455b4d0bd1f15d8667dea3c Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna@src.gnome.org>
+Date: Mon, 24 Jan 2011 17:39:45 +0000
+Subject: BluetoothStatus: depend more on libgnome-bluetooth-applet
+
+Ensure that a dependency is generated even when using --as-needed,
+by adding a fake function that calls into the library.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=639324
+---
+diff --git a/src/gnome-shell-plugin.c b/src/gnome-shell-plugin.c
+index 96075f4..8d85fa2 100644
+--- a/src/gnome-shell-plugin.c
++++ b/src/gnome-shell-plugin.c
+@@ -670,3 +670,17 @@ MetaPluginInfo *gnome_shell_plugin_plugin_info (MetaPlugin *plugin)
+
+ return &info;
+ }
++
++#if HAVE_BLUETOOTH
++/* HACK:
++ Add a non-static function that calls into libgnome-bluetooth-applet.so,
++ to avoid the linker being too smart and removing the dependency.
++ This function is never actually called.
++*/
++extern GType bluetooth_applet_get_type(void);
++void _shell_link_to_bluetooth(void);
++
++void _shell_link_to_bluetooth(void) {
++ bluetooth_applet_get_type();
++}
++#endif
+--
+cgit v0.8.3.4
diff --git a/gnome-base/gnome-shell/gnome-shell-2.91.6.ebuild b/gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild
similarity index 87%
rename from gnome-base/gnome-shell/gnome-shell-2.91.6.ebuild
rename to gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild
index a48267b..d4028f9 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.91.6.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.91.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -26,6 +26,7 @@ fi
# FIXME: Automagic gnome-bluetooth[introspection] support. Also gnome bug 637935
# gtk+-2.99.3 is needed for gtk/gtkx.h
COMMON_DEPEND=">=dev-libs/glib-2.25.9
+ x11-libs/gdk-pixbuf:2[introspection]
>=x11-libs/gtk+-2.99.3:3[introspection]
>=media-libs/clutter-1.5.15[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
@@ -45,7 +46,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.25.9
>=media-libs/gst-plugins-base-0.10.16
media-libs/libcanberra
media-sound/pulseaudio
- net-wireless/gnome-bluetooth[introspection]
+ >=net-wireless/gnome-bluetooth-2.90.0[introspection]
x11-libs/startup-notification
x11-libs/libXfixes
@@ -70,3 +71,10 @@ DOCS="AUTHORS README"
# Don't error out on warnings
G2CONF="--enable-compile-warnings=maximum
--disable-schemas-compile"
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # Taken from upstream, remove for next release, bug 352466
+ epatch "${FILESDIR}/${P}-as-needed.patch"
+}
diff --git a/gnome-base/gnome-shell/gnome-shell-9999.ebuild b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
index 292abc4..8a0a717 100644
--- a/gnome-base/gnome-shell/gnome-shell-9999.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -25,6 +25,7 @@ fi
# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
# FIXME: Automagic gnome-bluetooth[introspection] support. Also gnome bug 637935
COMMON_DEPEND=">=dev-libs/glib-2.25.9
+ x11-libs/gdk-pixbuf:2[introspection]
>=x11-libs/gtk+-3.0.0:3[introspection]
>=media-libs/clutter-1.5.15[introspection]
>=gnome-base/gnome-desktop-2.91.2:3
^ permalink raw reply related [flat|nested] 25+ messages in thread
end of thread, other threads:[~2018-09-10 21:34 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-10 15:41 [gentoo-commits] proj/gnome:master commit in: gnome-base/gnome-shell/, gnome-base/gnome-shell/files/ Nirbheek Chauhan
-- strict thread matches above, loose matches on Subject: below --
2018-09-10 21:33 Gilles Dartiguelongue
2018-02-03 20:32 Sobhan Mohammadpour
2014-12-21 13:28 Gilles Dartiguelongue
2014-11-29 16:49 Remi Cardona
2014-04-15 22:05 Gilles Dartiguelongue
2013-12-10 23:31 Gilles Dartiguelongue
2012-10-02 1:51 Alexandre Rostovtsev
2012-08-18 15:41 Priit Laes
2012-05-21 6:49 Alexandre Restovtsev
2012-04-06 18:22 Alexandre Restovtsev
2012-04-03 6:36 Alexandre Restovtsev
2011-11-02 2:36 Nirbheek Chauhan
2011-10-18 7:37 Alexandre Restovtsev
2011-08-27 2:08 Alexandre Restovtsev
2011-06-02 14:43 Nirbheek Chauhan
2011-03-29 8:36 Nirbheek Chauhan
2011-03-23 5:20 Nirbheek Chauhan
2011-03-15 13:08 Nirbheek Chauhan
2011-03-13 20:44 Nirbheek Chauhan
2011-03-09 11:34 Nirbheek Chauhan
2011-03-04 10:23 Nirbheek Chauhan
2011-02-28 20:25 Nirbheek Chauhan
2011-02-22 19:44 Nirbheek Chauhan
2011-02-18 6:10 Nirbheek Chauhan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox