1
0
gnome-control-center/gnome-control-center-disable-error-message-for-NM.patch
Bjørn Lie de08cbba86 Accepting request 1044192 from GNOME:Next
- Modify gnome-control-center-disable-error-message-for-NM.patch:
  fix wifi panel(bsc#1206233).

- Rebase gnome-control-center-disable-error-message-for-NM.patch.
- Add gnome-control-center-network-use-AdwStatusPage.patch:
  network-panel: Use AdwStatusPage to show NetworkManager error.
  This is needed by the above rebased patch
  (glgo#GNOME/gnome-control-center/commit/2b3de01124).

- Add gnome-control-center-fix-ws-sea-pass-toggle.patch: Fix crash
  when user clicking password visibility toggle in Security page
  when method is WPA3 Personal
  (glgo#GNOME/gnome-control-center!1520).

OBS-URL: https://build.opensuse.org/request/show/1044192
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-control-center?expand=0&rev=495
2022-12-22 13:00:34 +00:00

200 lines
8.9 KiB
Diff

From b5ae9ddfa0df356ae7bf9445631b756883226825 Mon Sep 17 00:00:00 2001
From: Jonathan Kang <jonathankang@gnome.org>
Date: Sun, 26 Sep 2021 11:04:13 +0800
Subject: [PATCH] add error messages when wicked is used as network manager
---
panels/network/cc-network-panel.c | 37 ++++++++++++++++++++++++++-
panels/network/cc-wifi-panel.c | 22 +++++++++++++++-
panels/network/cc-wifi-panel.ui | 42 +++++++++++++++++++++++++++++++
tests/meson.build | 3 +++
4 files changed, 102 insertions(+), 2 deletions(-)
Index: gnome-control-center-43.1/panels/network/cc-network-panel.c
===================================================================
--- gnome-control-center-43.1.orig/panels/network/cc-network-panel.c
+++ gnome-control-center-43.1/panels/network/cc-network-panel.c
@@ -646,10 +646,24 @@ static void
panel_check_network_manager_version (CcNetworkPanel *self)
{
const gchar *version;
+ const gchar *state;
+ GDBusConnection *connection;
+ GDBusProxy *proxy;
+ GVariant *variant;
+
+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+ proxy = g_dbus_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1/unit/wickedd_2ddhcp6_2eservice",
+ "org.freedesktop.systemd1.Unit",
+ NULL, NULL);
+ variant = g_dbus_proxy_get_cached_property (proxy, "ActiveState");
+ state = g_variant_get_string (variant, NULL);
/* parse running version */
version = nm_client_get_version (self->client);
- if (version == NULL) {
+ if (version == NULL && g_strcmp0 (state, "inactive") == 0) {
GtkWidget *status_page;
status_page = adw_status_page_new ();
@@ -661,9 +675,23 @@ panel_check_network_manager_version (CcN
_("NetworkManager needs to be running to view or make "
"connections. Contact a system administrator or the "
"software vendor."));
+ } else if (version == NULL && g_strcmp0 (state, "active") == 0) {
+ GtkWidget *status_page;
+
+ status_page = adw_status_page_new ();
+ cc_panel_set_content (CC_PANEL (self), status_page);
+
+ adw_status_page_set_icon_name (ADW_STATUS_PAGE (status_page), "network-error-symbolic");
+ adw_status_page_set_title (ADW_STATUS_PAGE (status_page), _("Wicked is running"));
+ adw_status_page_set_description (ADW_STATUS_PAGE (status_page),
+ _("Please use YaST2 to configure your network."));
} else {
manager_running (self);
}
+
+ g_object_unref (connection);
+ g_object_unref (proxy);
+ g_variant_unref (variant);
}
static void
Index: gnome-control-center-43.1/panels/network/cc-wifi-panel.c
===================================================================
--- gnome-control-center-43.1.orig/panels/network/cc-wifi-panel.c
+++ gnome-control-center-43.1/panels/network/cc-wifi-panel.c
@@ -425,8 +425,8 @@ remove_wifi_device (CcWifiPanel *self,
}
/* Disconnect the signal to prevent assertion crash */
- g_signal_handlers_disconnect_by_func (device,
- G_CALLBACK (wifi_panel_update_qr_image_cb),
+ g_signal_handlers_disconnect_by_func (device,
+ G_CALLBACK (wifi_panel_update_qr_image_cb),
self);
/* Destroy all stack pages related to this device */
@@ -444,21 +444,41 @@ static void
check_main_stack_page (CcWifiPanel *self)
{
const gchar *nm_version;
+ const gchar *state;
gboolean airplane_mode_active;
gboolean wireless_enabled;
+ GDBusConnection *connection;
+ GDBusProxy *proxy;
+ GVariant *variant;
+
+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+ proxy = g_dbus_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1/unit/wickedd_2ddhcp6_2eservice",
+ "org.freedesktop.systemd1.Unit",
+ NULL, NULL);
+ variant = g_dbus_proxy_get_cached_property (proxy, "ActiveState");
+ state = g_variant_get_string (variant, NULL);
nm_version = nm_client_get_version (self->client);
wireless_enabled = nm_client_wireless_get_enabled (self->client);
airplane_mode_active = cc_list_row_get_active (self->rfkill_row);
- if (!nm_version)
+ if (!nm_version && g_strcmp0 (state, "inactive") == 0)
gtk_stack_set_visible_child_name (self->main_stack, "nm-not-running");
+ else if (!nm_version && g_strcmp0 (state, "active") == 0)
+ gtk_stack_set_visible_child_name (self->main_stack, "wicked-running");
else if (!wireless_enabled && airplane_mode_active)
gtk_stack_set_visible_child_name (self->main_stack, "airplane-mode");
else if (!wireless_enabled || self->devices->len == 0)
gtk_stack_set_visible_child_name (self->main_stack, "no-wifi-devices");
else
gtk_stack_set_visible_child_name (self->main_stack, "wifi-connections");
+
+ g_object_unref (connection);
+ g_object_unref (proxy);
+ g_variant_unref (variant);
}
static void
Index: gnome-control-center-43.1/panels/network/cc-wifi-panel.ui
===================================================================
--- gnome-control-center-43.1.orig/panels/network/cc-wifi-panel.ui
+++ gnome-control-center-43.1/panels/network/cc-wifi-panel.ui
@@ -311,10 +311,53 @@
</object>
</child>
+ <!-- "Wicked Running" page -->
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">wicked-running</property>
+ <property name="child">
+ <object class="GtkCenterBox">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <child type="center">
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">face-sad-symbolic</property>
+ <property name="pixel_size">128</property>
+ <style>
+ <class name="dim-label" />
+ </style>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="wrap">True</property>
+ <property name="label" translatable="yes">Please use YaST2 to configure your network.</property>
+ <attributes>
+ <attribute name="scale" value="1.42" />
+ </attributes>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+
</object>
</child>
-
</object>
</child>
Index: gnome-control-center-43.1/tests/meson.build
===================================================================
--- gnome-control-center-43.1.orig/tests/meson.build
+++ gnome-control-center-43.1/tests/meson.build
@@ -1,8 +1,11 @@
subdir('common')
#subdir('datetime')
+# Disable tests for network panel, boo#1128195
+if false
if host_is_linux
subdir('network')
endif
+endif
subdir('interactive-panels')