From 36f050b2a01e503cfd788a9e5916286301420d0f Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Nov 20 2018 17:46:17 +0000 Subject: Update to 4.0.2 release --- diff --git a/.gitignore b/.gitignore index 7ab5882..56dafa7 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /cinnamon-3.8.9.tar.gz /cinnamon-4.0.0.tar.gz /cinnamon-4.0.1.tar.gz +/cinnamon-4.0.2.tar.gz diff --git a/cinnamon-3.8.8_port_libnm.patch b/cinnamon-3.8.8_port_libnm.patch deleted file mode 100644 index f144c9b..0000000 --- a/cinnamon-3.8.8_port_libnm.patch +++ /dev/null @@ -1,868 +0,0 @@ -From f411d70b9fdd33bfc88d4fa458af2670e6350ae7 Mon Sep 17 00:00:00 2001 -From: Lubomir Rintel -Date: Fri, 6 Jul 2018 09:38:56 +0100 -Subject: [PATCH 1/4] Network applet: Port to libnm - ---- - configure.ac | 2 +- - .../applets/network@cinnamon.org/applet.js | 293 ++++++++---------- - js/misc/modemManager.js | 4 +- - src/Makefile.am | 2 +- - 4 files changed, 139 insertions(+), 162 deletions(-) - -diff --git a/configure.ac b/configure.ac -index c8f251911..ade112733 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -77,7 +77,7 @@ PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION - libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION - gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION - polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes -- libnm-glib libnm-util atk-bridge-2.0) -+ libnm atk-bridge-2.0) - - PKG_CHECK_MODULES(CINNAMON_PERF_HELPER, gtk+-3.0 gio-2.0) - -diff --git a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -index ddea51a36..c6c63646d 100644 ---- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -+++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -@@ -2,8 +2,7 @@ const Applet = imports.ui.applet; - const GLib = imports.gi.GLib; - const GObject = imports.gi.GObject; - const Lang = imports.lang; --const NetworkManager = imports.gi.NetworkManager; --const NMClient = imports.gi.NMClient; -+const NM = imports.gi.NM; - const Signals = imports.signals; - const St = imports.gi.St; - const Mainloop = imports.mainloop; -@@ -35,26 +34,14 @@ const NMAccessPointSecurity = { - }; - - // small optimization, to avoid using [] all the time --const NM80211Mode = NetworkManager['80211Mode']; --const NM80211ApFlags = NetworkManager['80211ApFlags']; --const NM80211ApSecurityFlags = NetworkManager['80211ApSecurityFlags']; -+const NM80211Mode = NM['80211Mode']; -+const NM80211ApFlags = NM['80211ApFlags']; -+const NM80211ApSecurityFlags = NM['80211ApSecurityFlags']; - - // number of wireless networks that should be visible - // (the remaining are placed into More...) - const NUM_VISIBLE_NETWORKS = 5; - --function ssidCompare(one, two) { -- if (!one || !two) -- return false; -- if (one.length != two.length) -- return false; -- for (let i = 0; i < one.length; i++) { -- if (one[i] != two[i]) -- return false; -- } -- return true; --} -- - // shared between NMNetworkMenuItem and NMDeviceWWAN - function signalToIcon(value) { - if (value > 80) -@@ -76,7 +63,7 @@ function sortAccessPoints(accessPoints) { - } - - function ssidToLabel(ssid) { -- let label = NetworkManager.utils_ssid_to_utf8(ssid); -+ let label = NM.utils_ssid_to_utf8(ssid.get_data()); - if (!label) - label = _(""); - return label; -@@ -200,8 +187,10 @@ NMWiredSectionTitleMenuItem.prototype = { - this.setToggleState(device.connected); - // if this device is not controllable, hide the switch - this._switch.actor.visible = device.controllable; -- } else -+ } else { - this.setStatus(''); -+ this._switch.actor.visible = false; -+ } - }, - - activate: function(event) { -@@ -386,7 +375,7 @@ NMDevice.prototype = { - }, - - deactivate: function() { -- this.device.disconnect(function() {}); -+ this.device.disconnect_async(null, null); - }, - - activate: function() { -@@ -397,16 +386,16 @@ NMDevice.prototype = { - // 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, this.device, null, null); -+ this._client.activate_connection_async(this._connections[0].connection, this.device, null, null, null); - } else if (this._autoConnectionName) { - let connection = this._createAutomaticConnection(); - if (connection) -- this._client.add_and_activate_connection(connection, this.device, null, null); -+ this._client.add_and_activate_connection_async(connection, this.device, null, null, null); - } - }, - - get connected() { -- return this.device.state == NetworkManager.DeviceState.ACTIVATED; -+ return this.device.state == NM.DeviceState.ACTIVATED; - }, - - setActiveConnection: function(activeConnection) { -@@ -493,25 +482,25 @@ NMDevice.prototype = { - - get statusLabel(){ - switch(this.device.state) { -- case NetworkManager.DeviceState.DISCONNECTED: -- case NetworkManager.DeviceState.ACTIVATED: -+ case NM.DeviceState.DISCONNECTED: -+ case NM.DeviceState.ACTIVATED: - return null; -- case NetworkManager.DeviceState.UNMANAGED: -+ case NM.DeviceState.UNMANAGED: - /* Translators: this is for network devices that are physically present but are not - under NetworkManager's control (and thus cannot be used in the menu) */ - return _("unmanaged"); -- case NetworkManager.DeviceState.DEACTIVATING: -+ case NM.DeviceState.DEACTIVATING: - return _("disconnecting..."); -- case NetworkManager.DeviceState.PREPARE: -- case NetworkManager.DeviceState.CONFIG: -- case NetworkManager.DeviceState.IP_CONFIG: -- case NetworkManager.DeviceState.IP_CHECK: -- case NetworkManager.DeviceState.SECONDARIES: -+ case NM.DeviceState.PREPARE: -+ case NM.DeviceState.CONFIG: -+ case NM.DeviceState.IP_CONFIG: -+ case NM.DeviceState.IP_CHECK: -+ case NM.DeviceState.SECONDARIES: - return _("connecting..."); -- case NetworkManager.DeviceState.NEED_AUTH: -+ case NM.DeviceState.NEED_AUTH: - /* Translators: this is for network connections that require some kind of key or password */ - return _("authentication required"); -- case NetworkManager.DeviceState.UNAVAILABLE: -+ case NM.DeviceState.UNAVAILABLE: - // This state is actually a compound of various states (generically unavailable, - // firmware missing, carrier not available), that are exposed by different properties - // (whose state may or may not updated when we receive state-changed). -@@ -522,7 +511,7 @@ NMDevice.prototype = { - module, which is missing */ - return _("firmware missing"); - } -- if (this.device.capabilities & NetworkManager.DeviceCapabilities.CARRIER_DETECT) { -+ if (this.device.capabilities & NM.DeviceCapabilities.CARRIER_DETECT) { - if (!this._carrierChangedId) - this._carrierChangedId = this.device.connect('notify::carrier', Lang.bind(this, this._substateChanged)); - if (!this.carrier) { -@@ -533,7 +522,7 @@ NMDevice.prototype = { - /* 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: -+ case NM.DeviceState.FAILED: - return _("connection failed"); - default: - log('Device state invalid, is %d'.format(this.device.state)); -@@ -543,7 +532,7 @@ NMDevice.prototype = { - - get controllable(){ - // controllable for every state except unavailable or unmanaged -- if(this.device.state === NetworkManager.DeviceState.UNAVAILABLE || this.device.state === NetworkManager.DeviceState.UNMANAGED) -+ if(this.device.state === NM.DeviceState.UNAVAILABLE || this.device.state === NM.DeviceState.UNMANAGED) - return false; - - return true; -@@ -575,7 +564,7 @@ NMDevice.prototype = { - }, - - _shouldShowConnectionList: function() { -- return (this.device.state >= NetworkManager.DeviceState.DISCONNECTED); -+ return (this.device.state >= NM.DeviceState.DISCONNECTED); - }, - - _createSection: function() { -@@ -592,7 +581,7 @@ NMDevice.prototype = { - for(let j = 0; j < this._connections.length; ++j) { - let obj = this._connections[j]; - if (this._activeConnection && -- obj.connection == this._activeConnection._connection) -+ obj.connection == this._activeConnection.connection) - continue; - obj.item = this._createConnectionItem(obj); - -@@ -610,7 +599,7 @@ NMDevice.prototype = { - this._autoConnectionItem.connect('activate', Lang.bind(this, function() { - let connection = this._createAutomaticConnection(); - if (connection) -- this._client.add_and_activate_connection(connection, this.device, null, null); -+ this._client.add_and_activate_connection_async(connection, this.device, null, null, null); - })); - this.section.addMenuItem(this._autoConnectionItem); - } -@@ -621,14 +610,14 @@ NMDevice.prototype = { - let item = new PopupMenu.PopupMenuItem(obj.name); - - item.connect('activate', Lang.bind(this, function() { -- this._client.activate_connection(connection, this.device, null, null); -+ this._client.activate_connection_async(connection, this.device, null, null, null); - })); - return item; - }, - - _createActiveConnectionItem: function() { - let title; -- let active = this._activeConnection._connection; -+ let active = this._activeConnection.connection; - if (active) { - title = active._name; - } else { -@@ -646,11 +635,11 @@ NMDevice.prototype = { - return; - } - -- if (oldstate == NetworkManager.DeviceState.ACTIVATED) { -+ if (oldstate == NM.DeviceState.ACTIVATED) { - this.emit('network-lost'); - } - -- if (newstate == NetworkManager.DeviceState.FAILED) { -+ if (newstate == NM.DeviceState.FAILED) { - this.emit('activation-failed', reason); - } - -@@ -694,10 +683,10 @@ NMDevice.prototype = { - } - else { - switch (this.device.get_device_type()) { -- case NetworkManager.DeviceType.ETHERNET: return _("Ethernet"); -- case NetworkManager.DeviceType.WIFI: return _("Wifi"); -- case NetworkManager.DeviceType.MODEM: return _("Modem"); -- case NetworkManager.DeviceType.BT: return _("Bluetooth"); -+ case NM.DeviceType.ETHERNET: return _("Ethernet"); -+ case NM.DeviceType.WIFI: return _("Wifi"); -+ case NM.DeviceType.MODEM: return _("Modem"); -+ case NM.DeviceType.BT: return _("Bluetooth"); - default: return ""; - } - } -@@ -748,13 +737,13 @@ NMDeviceWired.prototype = { - }, - - _createAutomaticConnection: function() { -- let connection = new NetworkManager.Connection(); -- connection._uuid = NetworkManager.utils_uuid_generate(); -- connection.add_setting(new NetworkManager.SettingWired()); -- connection.add_setting(new NetworkManager.SettingConnection({ -+ let connection = new NM.SimpleConnection(); -+ connection._uuid = NM.utils_uuid_generate(); -+ connection.add_setting(new NM.SettingWired()); -+ connection.add_setting(new NM.SettingConnection({ - uuid: connection._uuid, - id: this._autoConnectionName, -- type: NetworkManager.SETTING_WIRED_SETTING_NAME, -+ type: NM.SETTING_WIRED_SETTING_NAME, - autoconnect: true - })); - return connection; -@@ -781,26 +770,26 @@ NMDeviceModem.prototype = { - try { - is_wwan = true; - this.mobileDevice = new ModemManager.BroadbandModem(device.udi, device.current_capabilities); -- if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) { -- this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME; -- } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.LTE) { -- this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME; -- } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.CDMA_EVDO) { -- this._connectionType = NetworkManager.SETTING_CDMA_SETTING_NAME; -+ if (this._capabilities & NM.DeviceModemCapabilities.GSM_UMTS) { -+ this._connectionType = NM.SETTING_GSM_SETTING_NAME; -+ } else if (this._capabilities & NM.DeviceModemCapabilities.LTE) { -+ this._connectionType = NM.SETTING_GSM_SETTING_NAME; -+ } else if (this._capabilities & NM.DeviceModemCapabilities.CDMA_EVDO) { -+ this._connectionType = NM.SETTING_CDMA_SETTING_NAME; - } - } - catch (e){ - global.logError(e); - } -- } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) { -+ } else if (this._capabilities & NM.DeviceModemCapabilities.GSM_UMTS) { - is_wwan = true; - this.mobileDevice = new ModemManager.ModemGsm(device.udi); -- this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME; -- } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.CDMA_EVDO) { -+ this._connectionType = NM.SETTING_GSM_SETTING_NAME; -+ } else if (this._capabilities & NM.DeviceModemCapabilities.CDMA_EVDO) { - is_wwan = true; - this.mobileDevice = new ModemManager.ModemCdma(device.udi); -- this._connectionType = NetworkManager.SETTING_CDMA_SETTING_NAME; -- } else if (this._capabilities & NetworkManager.DeviceModemCapabilities.LTE) { -+ this._connectionType = NM.SETTING_CDMA_SETTING_NAME; -+ } else if (this._capabilities & NM.DeviceModemCapabilities.LTE) { - is_wwan = true; - // FIXME: support signal quality - } -@@ -848,7 +837,7 @@ NMDeviceModem.prototype = { - }, - - get connected() { -- return this._enabled && this.device.state == NetworkManager.DeviceState.ACTIVATED; -+ return this._enabled && this.device.state == NM.DeviceState.ACTIVATED; - }, - - destroy: function() { -@@ -917,13 +906,13 @@ NMDeviceBluetooth.prototype = { - }, - - _createAutomaticConnection: function() { -- let connection = new NetworkManager.Connection(); -- connection._uuid = NetworkManager.utils_uuid_generate(); -- connection.add_setting(new NetworkManager.SettingBluetooth()); -- connection.add_setting(new NetworkManager.SettingConnection({ -+ let connection = new NM.SimpleConnection(); -+ connection._uuid = NM.utils_uuid_generate(); -+ connection.add_setting(new NM.SettingBluetooth()); -+ connection.add_setting(new NM.SettingConnection({ - uuid: connection._uuid, - id: this._autoConnectionName, -- type: NetworkManager.SETTING_BLUETOOTH_SETTING_NAME, -+ type: NM.SETTING_BLUETOOTH_SETTING_NAME, - autoconnect: false - })); - return connection; -@@ -963,7 +952,7 @@ NMDeviceVPN.prototype = { - }, - - connectionValid: function(connection) { -- return connection._type == NetworkManager.SETTING_VPN_SETTING_NAME; -+ return connection._type == NM.SETTING_VPN_SETTING_NAME; - }, - - get empty() { -@@ -986,7 +975,7 @@ NMDeviceVPN.prototype = { - - deactivate: function() { - if (this._activeConnection) -- this._client.deactivate_connection(this._activeConnection); -+ this._client.deactivate_connection(this._activeConnection, null); - }, - - statusLabel: null, -@@ -1128,7 +1117,7 @@ NMDeviceWireless.prototype = { - for (let i = 0; i < bestApObj.accessPoints.length; i++) { - let ap = bestApObj.accessPoints[i]; - if (ap.connection_valid(best)) { -- this._client.activate_connection(best, this.device, ap.dbus_path, null); -+ this._client.activate_connection_async(best, this.device, ap.path, null, null); - break; - } - } -@@ -1142,7 +1131,7 @@ NMDeviceWireless.prototype = { - 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); -+ this._client.add_and_activate_connection_async(connection, this.device, accessPoints[0].path, null, null); - } - }, - -@@ -1229,7 +1218,7 @@ NMDeviceWireless.prototype = { - }, - - _networkCompare: function(network, accessPoint) { -- if (!ssidCompare(network.ssid, accessPoint.get_ssid())) -+ if (!network.ssid.equal (accessPoint.get_ssid())) - return false; - if (network.mode != accessPoint.mode) - return false; -@@ -1396,7 +1385,7 @@ NMDeviceWireless.prototype = { - let accessPoints = sortAccessPoints(accessPointObj.accessPoints); - for (let i = 0; i < accessPoints.length; i++) { - if (accessPoints[i].connection_valid(connection)) { -- this._client.activate_connection(connection, this.device, accessPoints[i].dbus_path, null); -+ this._client.activate_connection_async(connection, this.device, accessPoints[i].path, null, null); - break; - } - } -@@ -1503,8 +1492,7 @@ NMDeviceWireless.prototype = { - }, - - _createActiveConnectionItem: function() { -- if (this._activeConnection._connection) { -- let connection = this._activeConnection._connection; -+ if (this._activeConnection.connection) { - if (!this._activeNetwork) { - if (this.device.active_access_point) { - let networkPos = this._findNetwork(this.device.active_access_point); -@@ -1520,7 +1508,7 @@ NMDeviceWireless.prototype = { - if (this._activeNetwork) - this._activeConnectionItem = new NMNetworkMenuItem(this._activeNetwork.accessPoints, undefined, { reactive: false }); - else -- this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(connection._name, 'network-wireless-connected', { reactive: false }); -+ this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(this._activeConnection.connection._name, 'network-wireless-connected', { reactive: false }); - } else { - // We cannot read the connection (due to ACL, or API incompatibility), but we still show signal if we have it - if (this._activeNetwork) -@@ -1536,25 +1524,26 @@ NMDeviceWireless.prototype = { - - _createAutomaticConnection: function(apObj) { - let name; -- let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid); -+ let ssid = NM.utils_ssid_to_utf8(apObj.ssid.get_data()); - 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({ -+ let connection = new NM.SimpleConnection(); -+ connection.add_setting(new NM.SettingWireless()); -+ connection.add_setting(new NM.SettingConnection({ - id: name, - autoconnect: true, // NetworkManager will know to ignore this if appropriate -- uuid: NetworkManager.utils_uuid_generate(), -- type: NetworkManager.SETTING_WIRELESS_SETTING_NAME -+ uuid: NM.utils_uuid_generate(), -+ type: NM.SETTING_WIRELESS_SETTING_NAME - })); - return connection; - }, - - _createNetworkItem: function(apObj, position) { -+ - if(!apObj.accessPoints || apObj.accessPoints.length == 0) { - // this should not happen, but I have no idea why it happens - return; -@@ -1578,10 +1567,10 @@ NMDeviceWireless.prototype = { - // 802.1x-enabled APs require further configuration, so they're - // handled in cinnamon-settings - Util.spawn(['cinnamon-settings', 'network', 'connect-8021x-wifi', -- this.device.get_path(), accessPoints[0].dbus_path]); -+ this.device.get_path(), accessPoints[0].path]); - } else { - let connection = this._createAutomaticConnection(apObj); -- this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null); -+ this._client.add_and_activate_connection_async(connection, this.device, accessPoints[0].path, null, null); - } - })); - } -@@ -1684,7 +1673,16 @@ CinnamonNetworkApplet.prototype = { - this._currentIconName = undefined; - this._setIcon('network-offline'); - -- this._client = NMClient.Client.new(); -+ NM.Client.new_async(null, Lang.bind(this, this._clientGot)); -+ } -+ catch (e) { -+ global.logError(e); -+ } -+ }, -+ -+ _clientGot: function(obj, result) { -+ try { -+ this._client = NM.Client.new_finish(result); - - this._statusSection = new PopupMenu.PopupMenuSection(); - this._statusItem = new PopupMenu.PopupMenuItem('', { style_class: 'popup-inactive-menu-item', reactive: false }); -@@ -1750,7 +1748,7 @@ CinnamonNetworkApplet.prototype = { - let devices = this._devices.wireless.devices; - - for (let i = 0; i < devices.length; i++) { -- devices[i].device.request_scan_simple(null); -+ devices[i].device.request_scan(null); - } - })); - -@@ -1773,42 +1771,36 @@ CinnamonNetworkApplet.prototype = { - - // Device types - this._dtypes = { }; -- this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired; -- this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless; -- this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem; -- this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth; -- // TODO: WiMax support -+ this._dtypes[NM.DeviceType.ETHERNET] = NMDeviceWired; -+ this._dtypes[NM.DeviceType.WIFI] = NMDeviceWireless; -+ this._dtypes[NM.DeviceType.MODEM] = NMDeviceModem; -+ this._dtypes[NM.DeviceType.BT] = NMDeviceBluetooth; - - // 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; -- this._ctypes[NetworkManager.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN; -- -- this._settings = NMClient.RemoteSettings.new(null); -- 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 -- // 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)); -- } -- })); -+ this._ctypes[NM.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS; -+ this._ctypes[NM.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED; -+ this._ctypes[NM.SETTING_PPPOE_SETTING_NAME] = NMConnectionCategory.WIRED; -+ this._ctypes[NM.SETTING_PPP_SETTING_NAME] = NMConnectionCategory.WIRED; -+ this._ctypes[NM.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN; -+ this._ctypes[NM.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN; -+ this._ctypes[NM.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN; -+ this._ctypes[NM.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN; -+ -+ this._readConnections(); -+ this._readDevices(); -+ this._syncNMState(); -+ -+ this._client.connect('notify::nm-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._client.connect('connection-added', Lang.bind(this, this._connectionAdded)); -+ this._client.connect('connection-removed', Lang.bind(this, this._connectionRemoved)); -+ -+ this._inited = true; - - this._periodicUpdateIcon(); - -@@ -1951,7 +1943,7 @@ CinnamonNetworkApplet.prototype = { - - this._syncSectionTitle(wrapper.category); - } else -- log('Invalid network device type, is ' + device.get_device_type()); -+ log('Unknown network device type, is ' + device.get_device_type()); - }, - - _deviceRemoved: function(client, device) { -@@ -2009,24 +2001,12 @@ CinnamonNetworkApplet.prototype = { - a._inited = true; - } - -- if (!a._connection) { -- a._connection = this._settings.get_connection_by_path(a.connection); -- -- if (a._connection) { -- a._type = a._connection._type; -- a._section = this._ctypes[a._type]; -- if (a._errorLogged) { -- log('network applet: Found connection for active'); -- a._errorLogged = false; -- } -- } else { -- a._connection = null; -- a._type = null; -- a._section = null; -- if (!a._errorLogged) { -- a._errorLogged = true; -- log('network applet: Cannot find connection for active (or connection cannot be read)'); -- } -+ if (!a._type) { -+ a._type = a.connection._type; -+ a._section = this._ctypes[a._type]; -+ if (a._errorLogged) { -+ log('network applet: Found connection for active'); -+ a._errorLogged = false; - } - } - -@@ -2036,7 +2016,7 @@ CinnamonNetworkApplet.prototype = { - continue; - } - -- if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED) { -+ if (a.state == NM.ActiveConnectionState.ACTIVATED) { - if (!default_ip4) { - // We didn't find the default IPV4 device yet.. - if (!default_ip6) { -@@ -2051,7 +2031,7 @@ CinnamonNetworkApplet.prototype = { - } - } - } -- if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING) { -+ if (a.state == NM.ActiveConnectionState.ACTIVATING) { - activating = a; - } - -@@ -2063,7 +2043,7 @@ CinnamonNetworkApplet.prototype = { - } - - if (!a._primaryDevice) { -- if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) { -+ if (a._type != NM.SETTING_VPN_SETTING_NAME) { - // find a good device to be considered primary - a._primaryDevice = null; - let devices = a.get_devices() || [ ]; -@@ -2080,7 +2060,7 @@ CinnamonNetworkApplet.prototype = { - if (a._primaryDevice) - a._primaryDevice.setActiveConnection(a); - -- if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED && -+ if (a.state == NM.ActiveConnectionState.ACTIVATED && - a._primaryDevice && a._primaryDevice._notification) { - a._primaryDevice._notification.destroy(); - a._primaryDevice._notification = null; -@@ -2092,7 +2072,7 @@ CinnamonNetworkApplet.prototype = { - }, - - _notifyActivated: function(activeConnection) { -- if (activeConnection.state == NetworkManager.ActiveConnectionState.ACTIVATED && -+ if (activeConnection.state == NM.ActiveConnectionState.ACTIVATED && - activeConnection._primaryDevice && activeConnection._primaryDevice._notification) { - activeConnection._primaryDevice._notification.destroy(); - activeConnection._primaryDevice._notification = null; -@@ -2102,29 +2082,27 @@ CinnamonNetworkApplet.prototype = { - }, - - _readConnections: function() { -- let connections = this._settings.list_connections(); -+ let connections = this._client.get_connections(); - for (let i = 0; i < connections.length; i++) { - let connection = connections[i]; - if (connection._uuid) { - // connection was already seen (for example because NetworkManager was restarted) - continue; - } -- connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved)); -- connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection)); -+ connection._updatedId = connection.connect('changed', Lang.bind(this, this._updateConnection)); - - this._updateConnection(connection); - this._connections.push(connection); - } - }, - -- _newConnection: function(settings, connection) { -+ _connectionAdded: function(client, connection) { - if (connection._uuid) { - // connection was already seen - return; - } - -- connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved)); -- connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection)); -+ connection._updatedId = connection.connect('changed', Lang.bind(this, this._updateConnection)); - - this._updateConnection(connection); - this._connections.push(connection); -@@ -2132,7 +2110,7 @@ CinnamonNetworkApplet.prototype = { - this._updateIcon(); - }, - -- _connectionRemoved: function(connection) { -+ _connectionRemoved: function(client, connection) { - let pos = this._connections.indexOf(connection); - if (pos != -1) - this._connections.splice(pos); -@@ -2150,12 +2128,11 @@ CinnamonNetworkApplet.prototype = { - } - - connection._uuid = null; -- connection.disconnect(connection._removedId); - connection.disconnect(connection._updatedId); - }, - - _updateConnection: function(connection) { -- let connectionSettings = connection.get_setting_by_name(NetworkManager.SETTING_CONNECTION_SETTING_NAME); -+ let connectionSettings = connection.get_setting_by_name(NM.SETTING_CONNECTION_SETTING_NAME); - connection._type = connectionSettings.type; - - connection._section = this._ctypes[connection._type] || NMConnectionCategory.INVALID; -@@ -2201,7 +2178,7 @@ CinnamonNetworkApplet.prototype = { - }, - - _syncNMState: function() { -- if (!this._client.manager_running) { -+ if (!this._client.nm_running) { - log('NetworkManager is not running, hiding...'); - this.menu.close(); - this.actor.hide(); -@@ -2231,7 +2208,7 @@ CinnamonNetworkApplet.prototype = { - if (!mc) { - this._setIcon('network-offline'); - this.set_applet_tooltip(_("No connection")); -- } else if (mc.state == NetworkManager.ActiveConnectionState.ACTIVATING) { -+ } else if (mc.state == NM.ActiveConnectionState.ACTIVATING) { - new_delay = FAST_PERIODIC_UPDATE_FREQUENCY_SECONDS; - switch (mc._section) { - case NMConnectionCategory.WWAN: -@@ -2273,7 +2250,7 @@ CinnamonNetworkApplet.prototype = { - this.set_applet_tooltip(_("Connected to the wireless network")); - } else { - this._setIcon('network-wireless-signal-' + signalToIcon(ap.strength)); -- this.set_applet_tooltip(_("Wireless connection") + ": " + ap.get_ssid() + " ("+ ap.strength +"%)"); -+ this.set_applet_tooltip(_("Wireless connection") + ": " + ssidToLabel(ap.get_ssid()) + " ("+ ap.strength +"%)"); - } - } else { - log('Active connection with no primary device?'); -diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js -index 6f95ead2a..b7d455ff3 100644 ---- a/js/misc/modemManager.js -+++ b/js/misc/modemManager.js -@@ -2,7 +2,7 @@ - - const Gio = imports.gi.Gio; - const Lang = imports.lang; --const NMGtk = imports.gi.NMGtk; -+const NMA = imports.gi.NMA; - const Signals = imports.signals; - - // _getMobileProvidersDatabase: -@@ -14,7 +14,7 @@ let _mpd; - function _getMobileProvidersDatabase() { - if (_mpd == null) { - try { -- _mpd = new NMGtk.MobileProvidersDatabase(); -+ _mpd = new NMA.MobileProvidersDatabase(); - _mpd.init(null); - } catch (e) { - log(e.message); -diff --git a/src/Makefile.am b/src/Makefile.am -index 9fdfe0a06..ad314d8ba 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -222,7 +222,7 @@ libcinnamon_la_LIBADD = \ - libcinnamon_la_CPPFLAGS = $(MUFFIN_CFLAGS) $(cinnamon_cflags) - - Cinnamon-0.1.gir: libcinnamon.la St-1.0.gir --Cinnamon_0_1_gir_INCLUDES = Clutter-0 ClutterX11-0 CoglPango-0 Cogl-0 Meta-Muffin.0 Soup-2.4 CMenu-3.0 NetworkManager-1.0 NMClient-1.0 -+Cinnamon_0_1_gir_INCLUDES = Clutter-0 ClutterX11-0 CoglPango-0 Cogl-0 Meta-Muffin.0 Soup-2.4 CMenu-3.0 NM-1.0 - Cinnamon_0_1_gir_CFLAGS = $(libcinnamon_la_CPPFLAGS) -I $(srcdir) - Cinnamon_0_1_gir_LIBS = libcinnamon.la - Cinnamon_0_1_gir_FILES = $(libcinnamon_la_gir_sources) - -From 7555c8d67802abc143ed27ddee190ef567837415 Mon Sep 17 00:00:00 2001 -From: ?UTF-8?q?Bj=C3=B6rn=20Esser?= -Date: Fri, 6 Jul 2018 09:41:10 +0100 -Subject: [PATCH 2/4] network: Support user connections - ---- - .../applets/network@cinnamon.org/applet.js | 32 ++++++++++++++++--- - 1 file changed, 28 insertions(+), 4 deletions(-) - -diff --git a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -index c6c63646d..ca441cd58 100644 ---- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -+++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -@@ -73,6 +73,11 @@ function NMNetworkMenuItem() { - this._init.apply(this, arguments); - } - -+function default_to_private_connections(client) { -+ let perms = client.get_permission_result (NM.Client.ClientPermission.SETTINGS_MODIFY_SYSTEM); -+ return (perms != NM.Client.ClientPermissionResult.YES); -+} -+ - NMNetworkMenuItem.prototype = { - __proto__: PopupMenu.PopupBaseMenuItem.prototype, - -@@ -740,12 +745,14 @@ NMDeviceWired.prototype = { - let connection = new NM.SimpleConnection(); - connection._uuid = NM.utils_uuid_generate(); - connection.add_setting(new NM.SettingWired()); -- connection.add_setting(new NM.SettingConnection({ -+ let setting_conn = new NM.SettingConnection({ - uuid: connection._uuid, - id: this._autoConnectionName, - type: NM.SETTING_WIRED_SETTING_NAME, - autoconnect: true -- })); -+ }); -+ setting_conn.add_permission('user', GLib.get_user_name(), null); -+ connection.add_setting(setting_conn); - return connection; - } - }; -@@ -995,6 +1002,8 @@ NMDeviceWireless.prototype = { - this._overflowItem = null; - this._networks = [ ]; - -+ this._client = client; -+ - // breaking the layers with this, but cannot call - // this.connectionValid until I have a device - this.device = device; -@@ -1533,12 +1542,27 @@ NMDeviceWireless.prototype = { - - let connection = new NM.SimpleConnection(); - connection.add_setting(new NM.SettingWireless()); -- connection.add_setting(new NM.SettingConnection({ -+ let setting_conn = new NM.SettingConnection({ - id: name, - autoconnect: true, // NetworkManager will know to ignore this if appropriate - uuid: NM.utils_uuid_generate(), - type: NM.SETTING_WIRELESS_SETTING_NAME -- })); -+ }); -+ if (default_to_private_connections(this._client)) { -+ setting_conn.add_permission('user', GLib.get_user_name(), null); -+ if (apObj.security == NMAccessPointSecurity.WPA2_PSK || -+ apObj.security == NMAccessPointSecurity.WPA_PSK) { -+ connection.add_setting(new NM.SettingWirelessSecurity({ -+ psk_flags: NM.SettingSecretFlags.AGENT_OWNED -+ })); -+ } -+ if (apObj.security == NMAccessPointSecurity.WEP) { -+ connection.add_setting(new NM.SettingWirelessSecurity({ -+ wep_key_flags: NM.SettingSecretFlags.AGENT_OWNED -+ })); -+ } -+ } -+ connection.add_setting(setting_conn); - return connection; - }, - - -From c30f921431e02a2f35e6234c5500592b46f52f4e Mon Sep 17 00:00:00 2001 -From: Leigh Scott -Date: Sun, 22 Jul 2018 12:58:32 +0100 -Subject: [PATCH 4/4] Fix mistake - ---- - .../usr/share/cinnamon/applets/network@cinnamon.org/applet.js | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -index ca441cd58..3d6015099 100644 ---- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -+++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js -@@ -74,8 +74,8 @@ function NMNetworkMenuItem() { - } - - function default_to_private_connections(client) { -- let perms = client.get_permission_result (NM.Client.ClientPermission.SETTINGS_MODIFY_SYSTEM); -- return (perms != NM.Client.ClientPermissionResult.YES); -+ let perms = client.get_permission_result (NM.ClientPermission.SETTINGS_MODIFY_SYSTEM); -+ return (perms != NM.ClientPermissionResult.YES); - } - - NMNetworkMenuItem.prototype = { diff --git a/cinnamon.spec b/cinnamon.spec index 57c433d..0be5971 100644 --- a/cinnamon.spec +++ b/cinnamon.spec @@ -13,8 +13,8 @@ %global __python %{__python3} Name: cinnamon -Version: 4.0.1 -Release: 2%{?dist} +Version: 4.0.2 +Release: 1%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ and LGPLv2+ URL: https://github.com/linuxmint/%{name} @@ -29,7 +29,6 @@ Patch2: revert_25aef37.patch Patch3: default_panal_launcher.patch Patch4: remove_crap_from_menu.patch Patch5: replace-metacity-with-openbox.patch -Patch6: %{url}/pull/7699.patch#/%{name}-3.8.8_port_libnm.patch BuildRequires: gcc-c++ @@ -276,6 +275,9 @@ EOF %changelog +* Tue Nov 20 2018 Leigh Scott - 4.0.2-1 +- Update to 4.0.2 release + * Wed Nov 14 2018 Leigh Scott - 4.0.1-2 - Switch theme and add version to cinnamon-themes requires diff --git a/sources b/sources index 79a6250..2ca58b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cinnamon-4.0.1.tar.gz) = 7b6ee722f268ebbaee8e535c682cdd2c84e607933a9e16eb31ecc85c5f5d7930094d5e8ea9f096b92a0f96feab9f9cd2c58f6e41a4a3b91c570f8776ea8e896a +SHA512 (cinnamon-4.0.2.tar.gz) = 5652f500e3f7f2d3003c06d495d24828802528b230514a9662217a8074654b54b2433b52fcb5c1f5b6f6710dc6a72a21620e9b3ed8bb1960953799a70b21819b