import CS gnome-control-center-40.0-51.el9

This commit is contained in:
AlmaLinux RelEng Bot 2026-08-24 09:06:32 -04:00
parent aa88e03e97
commit 432bab3fce
8 changed files with 986 additions and 1 deletions

View File

@ -0,0 +1,125 @@
From a8a267677fc0794f312560251617a646ba52fa2f Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Wed, 13 May 2026 17:57:39 +0200
Subject: [PATCH] wacom: Change button order for 3-button styli
The order is scrambled, relative to how they are assigned by
the compositor/Xorg.
---
panels/wacom/cc-wacom-stylus-page.c | 67 ++++++++++++++++++++---------
1 file changed, 47 insertions(+), 20 deletions(-)
diff --git a/panels/wacom/cc-wacom-stylus-page.c b/panels/wacom/cc-wacom-stylus-page.c
index 2fc6c5a..6727b1d 100644
--- a/panels/wacom/cc-wacom-stylus-page.c
+++ b/panels/wacom/cc-wacom-stylus-page.c
@@ -157,16 +157,16 @@ button_changed_cb (CcWacomStylusPage *page)
{
GtkTreeIter iter;
GtkListStore *liststore;
- gint mapping_b2,
- mapping_b3,
- mapping_b4;
+ gint mapping_bottombutton,
+ mapping_topbutton,
+ mapping_thirdbutton;
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (WID ("combo-bottombutton")), &iter))
return;
liststore = GTK_LIST_STORE (WID ("liststore-buttons"));
gtk_tree_model_get (GTK_TREE_MODEL (liststore), &iter,
- BUTTONNUMBER_COLUMN, &mapping_b2,
+ BUTTONNUMBER_COLUMN, &mapping_bottombutton,
-1);
if (cc_wacom_tool_get_num_buttons (page->stylus) > 1) {
@@ -174,10 +174,10 @@ button_changed_cb (CcWacomStylusPage *page)
return;
gtk_tree_model_get (GTK_TREE_MODEL (liststore), &iter,
- BUTTONNUMBER_COLUMN, &mapping_b3,
+ BUTTONNUMBER_COLUMN, &mapping_topbutton,
-1);
} else {
- mapping_b3 = 0;
+ mapping_topbutton = 0;
}
if (cc_wacom_tool_get_num_buttons (page->stylus) > 2) {
@@ -185,15 +185,27 @@ button_changed_cb (CcWacomStylusPage *page)
return;
gtk_tree_model_get (GTK_TREE_MODEL (liststore), &iter,
- BUTTONNUMBER_COLUMN, &mapping_b4,
+ BUTTONNUMBER_COLUMN, &mapping_thirdbutton,
-1);
} else {
- mapping_b4 = 0;
+ mapping_thirdbutton = 0;
}
- g_settings_set_enum (page->stylus_settings, "button-action", mapping_b2);
- g_settings_set_enum (page->stylus_settings, "secondary-button-action", mapping_b3);
- g_settings_set_enum (page->stylus_settings, "tertiary-button-action", mapping_b4);
+ if (cc_wacom_tool_get_num_buttons (page->stylus) >= 3) {
+ if (g_getenv ("GCC_ALTERNATIVE_STYLUS_MAPPING") == NULL) {
+ g_settings_set_enum (page->stylus_settings, "tertiary-button-action", mapping_topbutton);
+ g_settings_set_enum (page->stylus_settings, "secondary-button-action", mapping_bottombutton);
+ g_settings_set_enum (page->stylus_settings, "button-action", mapping_thirdbutton);
+ } else {
+ g_settings_set_enum (page->stylus_settings, "button-action", mapping_topbutton);
+ g_settings_set_enum (page->stylus_settings, "secondary-button-action", mapping_bottombutton);
+ g_settings_set_enum (page->stylus_settings, "tertiary-button-action", mapping_thirdbutton);
+ }
+ } else {
+ g_settings_set_enum (page->stylus_settings, "secondary-button-action", mapping_topbutton);
+ g_settings_set_enum (page->stylus_settings, "button-action", mapping_bottombutton);
+ g_settings_set_enum (page->stylus_settings, "tertiary-button-action", mapping_thirdbutton);
+ }
}
static void
@@ -465,15 +477,30 @@ cc_wacom_stylus_page_new (CcWacomTool *stylus)
update_stylus_ui (page, layout);
- if (num_buttons >= 3)
- set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-thirdbutton")),
- page->stylus_settings, "tertiary-button-action");
- if (num_buttons >= 2)
- set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-topbutton")),
- page->stylus_settings, "secondary-button-action");
- if (num_buttons >= 1)
- set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-bottombutton")),
- page->stylus_settings, "button-action");
+ if (num_buttons >= 3) {
+ if (g_getenv ("GCC_ALTERNATIVE_STYLUS_MAPPING") == NULL) {
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-topbutton")),
+ page->stylus_settings, "tertiary-button-action");
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-bottombutton")),
+ page->stylus_settings, "secondary-button-action");
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-thirdbutton")),
+ page->stylus_settings, "button-action");
+ } else {
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-topbutton")),
+ page->stylus_settings, "button-action");
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-bottombutton")),
+ page->stylus_settings, "secondary-button-action");
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-thirdbutton")),
+ page->stylus_settings, "tertiary-button-action");
+ }
+ } else {
+ if (num_buttons >= 2)
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-topbutton")),
+ page->stylus_settings, "secondary-button-action");
+ if (num_buttons >= 1)
+ set_button_mapping_from_gsettings (GTK_COMBO_BOX (WID ("combo-bottombutton")),
+ page->stylus_settings, "button-action");
+ }
set_feel_from_gsettings (GTK_ADJUSTMENT (WID ("adjustment-tip-feel")),
page->stylus_settings, "pressure-curve");
--
2.54.0

View File

@ -0,0 +1,125 @@
From 7f8ee8ea0ca441ea4c280d48ef8e015daca44bbf Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Tue, 14 Apr 2026 11:23:47 +0200
Subject: [PATCH] info-overview: Backport NVIDIA GPU name fixes for
print-renderer
When SwitcherooControl runs the print-renderer helper with DRI_PRIME, the
NVIDIA proprietary GL stack may not honor that selection; the helper can
then report a bogus GL_RENDERER and About falls back to a generic udev
name (e.g. "NVIDIA Corporation").
gnome-control-center-print-renderer (after querying GL_RENDERER), checks
GL_VERSION for NVIDIA and invalidates the result when DRI_PRIME is set
but __GLX_VENDOR_LIBRARY_NAME is not "nvidia", so we fall back to
Switcheroo's device Name instead of a wrong renderer string.
When spawning the helper, we should pass DISPLAY, WAYLAND_DISPLAY, and
XDG_RUNTIME_DIR from the running process instead of relying on full
inherited environment in all cases.
Upstream:
- 098adb5a75c78177d2958eb47e30c889eb613470 ("about: fix multiple GPU name
display with NVIDIA GPU on Desktop PC", #3375)
- 82bd9c71931cea251f06835b5d9bec7164468788 ("about: fix NVIDIA GPU name
display if get_renderer_from_switcheroo failed", #3474)
- 2b111f062e27137db59af698d37f2f02645b2fe2 ("system-details-window:
Don't inherit env vars from parent")
Adapted for GTK3 (gdk_window_create_gl_context).
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/3375
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/3474
Resolves: RHEL-111572
---
panels/info-overview/cc-info-overview-panel.c | 12 +++++++--
.../gnome-control-center-print-renderer.c | 26 +++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
index 8c5f92e64..ff9f64c15 100644
--- a/panels/info-overview/cc-info-overview-panel.c
+++ b/panels/info-overview/cc-info-overview-panel.c
@@ -258,14 +258,22 @@ get_renderer_from_helper (const char **env)
g_auto(GStrv) envp = NULL;
g_autofree char *renderer = NULL;
g_autoptr(GError) error = NULL;
+ /* Environment variables that are needed to run the helper on X11 and Wayland */
+ static const char *env_vars[] = { "DISPLAY", "WAYLAND_DISPLAY", "XDG_RUNTIME_DIR" };
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (env_vars); i++)
+ {
+ const char *value = g_getenv (env_vars[i]);
+ if (value)
+ envp = g_environ_setenv (envp, env_vars[i], value, TRUE);
+ }
g_debug ("About to launch '%s'", argv[0]);
if (env != NULL)
{
- guint i;
g_debug ("With environment:");
- envp = g_get_environ ();
for (i = 0; env != NULL && env[i] != NULL; i = i + 2)
{
g_debug (" %s = %s", env[i], env[i+1]);
diff --git a/panels/info-overview/gnome-control-center-print-renderer.c b/panels/info-overview/gnome-control-center-print-renderer.c
index 3e83703c3..141601b46 100644
--- a/panels/info-overview/gnome-control-center-print-renderer.c
+++ b/panels/info-overview/gnome-control-center-print-renderer.c
@@ -22,6 +22,8 @@
* Matthias Clasen <mclasen@redhat.com>
*/
+#include <string.h>
+
#include <gtk/gtk.h>
#include <epoxy/gl.h>
@@ -31,6 +33,7 @@ get_gtk_gles_renderer (void)
GtkWidget *win;
GdkGLContext *context;
char *renderer = NULL;
+ g_autofree char *gl_version = NULL;
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_realize (win);
@@ -39,9 +42,32 @@ get_gtk_gles_renderer (void)
return NULL;
gdk_gl_context_make_current (context);
renderer = g_strdup ((char *) glGetString (GL_RENDERER));
+ gl_version = g_strdup ((char *) glGetString (GL_VERSION));
gdk_gl_context_clear_current ();
g_object_unref (context);
+ if (gl_version && strstr (gl_version, "NVIDIA") != NULL)
+ {
+ const char *glvnd_libname = g_getenv ("__GLX_VENDOR_LIBRARY_NAME");
+ const char *dri_prime = g_getenv ("DRI_PRIME");
+ if (g_strcmp0 (glvnd_libname, "nvidia") != 0 && dri_prime != NULL)
+ {
+ /* This helper is launched with parameters from a
+ * non-NVIDIA GPU, but is running using a NVIDIA
+ * library. As such, DRI_PRIME envvar from switcheroo
+ * does not actually take effect, and the GPU name is
+ * invalid.
+ *
+ * If there is no DRI_PRIME envvar neither, assuming
+ * we failed to use switcheroo to get GPU names, and
+ * this is called with basic envvars listed in
+ * cc-info-overview-panel.c:get_renderer_from_helper()
+ */
+ g_free (renderer);
+ return NULL;
+ }
+ }
+
return renderer;
}
--
2.52.0

View File

@ -0,0 +1,492 @@
From 5c3b92d3cee5ccf17645a0d963bfb0ad2cfed7c0 Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Tue, 31 Mar 2026 13:59:18 +0200
Subject: [PATCH] network: Drop WEP support
wpa_supplicant, libnma, NM, and friends have dropped WEP support.
WEP connections in GNOME Settings won't actually work anyway.
See also
https://gitlab.gnome.org/GNOME/libnma/-/merge_requests/33
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1139
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1138
https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/112
https://gitlab.gnome.org/GNOME/network-manager-applet/-/merge_requests/113
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1340
(cherry picked from commit 087222d73481692c532e88eeeed4f292edcc01cf)
---
panels/network/cc-wifi-connection-row.c | 18 +--
panels/network/cc-wifi-hotspot-dialog.c | 118 +++++-------------
panels/network/cc-wifi-panel.c | 15 +--
.../connection-editor/ce-page-details.c | 8 --
.../connection-editor/ce-page-security.c | 63 +---------
panels/network/net-device-wifi.c | 9 +-
6 files changed, 41 insertions(+), 190 deletions(-)
diff --git a/panels/network/cc-wifi-connection-row.c b/panels/network/cc-wifi-connection-row.c
index cee92db61..17bd0440f 100644
--- a/panels/network/cc-wifi-connection-row.c
+++ b/panels/network/cc-wifi-connection-row.c
@@ -56,7 +56,6 @@ typedef enum
{
NM_AP_SEC_UNKNOWN,
NM_AP_SEC_NONE,
- NM_AP_SEC_WEP,
NM_AP_SEC_WPA,
NM_AP_SEC_WPA2,
NM_AP_SEC_SAE,
@@ -87,12 +86,6 @@ get_access_point_security (NMAccessPoint *ap)
{
type = NM_AP_SEC_NONE;
}
- else if ((flags & NM_802_11_AP_FLAGS_PRIVACY) &&
- wpa_flags == NM_802_11_AP_SEC_NONE &&
- rsn_flags == NM_802_11_AP_SEC_NONE)
- {
- type = NM_AP_SEC_WEP;
- }
else if (!(flags & NM_802_11_AP_FLAGS_PRIVACY) &&
wpa_flags != NM_802_11_AP_SEC_NONE &&
rsn_flags != NM_802_11_AP_SEC_NONE)
@@ -135,10 +128,6 @@ get_connection_security (NMConnection *con)
if (!key_mgmt)
return NM_AP_SEC_NONE;
- else if (g_str_equal (key_mgmt, "none"))
- return NM_AP_SEC_WEP;
- else if (g_str_equal (key_mgmt, "ieee8021x"))
- return NM_AP_SEC_WEP;
else if (g_str_equal (key_mgmt, "wpa-eap"))
return NM_AP_SEC_WPA2;
else if (strncmp (key_mgmt, "wpa-", 4) == 0)
@@ -262,12 +251,7 @@ update_ui (CcWifiConnectionRow *self)
const gchar *icon_path;
gtk_widget_set_child_visible (GTK_WIDGET (self->encrypted_icon), TRUE);
- if (security == NM_AP_SEC_WEP)
- {
- icon_path = "/org/gnome/control-center/network/warning-small-symbolic.svg";
- gtk_widget_set_tooltip_text (GTK_WIDGET (self->encrypted_icon), _("Insecure network (WEP)"));
- }
- else if (security == NM_AP_SEC_WPA)
+ if (security == NM_AP_SEC_WPA)
{
icon_path = "/org/gnome/control-center/network/lock-small-symbolic.svg";
gtk_widget_set_tooltip_text (GTK_WIDGET (self->encrypted_icon), _("Secure network (WPA)"));
diff --git a/panels/network/cc-wifi-hotspot-dialog.c b/panels/network/cc-wifi-hotspot-dialog.c
index 4d1ef2478..136cb9dfe 100644
--- a/panels/network/cc-wifi-hotspot-dialog.c
+++ b/panels/network/cc-wifi-hotspot-dialog.c
@@ -53,7 +53,6 @@ struct _CcWifiHotspotDialog
NMDeviceWifi *device;
NMConnection *connection;
gchar *host_name;
- gboolean wpa_supported; /* WPA/WPA2 supported */
};
G_DEFINE_TYPE (CcWifiHotspotDialog, cc_wifi_hotspot_dialog, GTK_TYPE_MESSAGE_DIALOG)
@@ -79,28 +78,6 @@ get_random_wpa_key (void)
return key;
}
-static gchar *
-get_random_wep_key (void)
-{
- const gchar *hexdigits = "0123456789abcdef";
- gchar *key;
- gint i;
-
- key = g_malloc (12 * sizeof (key));
-
- /* generate a 10-digit hex WEP key */
- for (i = 0; i < 10; i++)
- {
- gint digit;
- digit = g_random_int_range (0, 16);
- key[i] = hexdigits[digit];
- }
-
- key[i] = '\0';
-
- return key;
-}
-
static void
wifi_hotspot_dialog_update_main_label (CcWifiHotspotDialog *self)
{
@@ -167,10 +144,7 @@ get_secrets_cb (GObject *source_object,
}
security_setting = nm_connection_get_setting_wireless_security (self->connection);
- if (self->wpa_supported)
- key = nm_setting_wireless_security_get_psk (security_setting);
- else
- key = nm_setting_wireless_security_get_wep_key (security_setting, 0);
+ key = nm_setting_wireless_security_get_psk (security_setting);
if (key)
gtk_entry_set_text (self->password_entry, key);
@@ -227,16 +201,14 @@ hotspot_password_is_valid (CcWifiHotspotDialog *self,
if (!password || !*password)
return TRUE;
- if (self->wpa_supported)
- return nm_utils_wpa_psk_valid (password);
- else
- return nm_utils_wep_key_valid (password, NM_WEP_KEY_TYPE_KEY);
+ return nm_utils_wpa_psk_valid (password);
}
static void
hotspot_entry_changed_cb (CcWifiHotspotDialog *self)
{
const gchar *ssid, *password, *error_label;
+ g_autofree gchar *password_err_allocated = NULL;
gboolean valid_ssid, valid_password;
g_assert (CC_IS_WIFI_HOTSPOT_DIALOG (self));
@@ -262,7 +234,17 @@ hotspot_entry_changed_cb (CcWifiHotspotDialog *self)
}
else
{
- error_label = _("Must have a minimum of 8 characters");
+ if (strlen (password) < 8)
+ error_label = _("Must have a minimum of 8 characters");
+ else
+ {
+ /* 63 is the maximum WPA-PSK passphrase length (IEEE 802.11 / WPA spec). */
+ guint max_chars = 63;
+
+ password_err_allocated = g_strdup_printf (ngettext ("Must have a maximum of %d character",
+ "Must have a maximum of %d characters", max_chars), max_chars);
+ error_label = password_err_allocated;
+ }
widget_set_error (GTK_WIDGET(self->password_entry));
}
@@ -278,10 +260,7 @@ generate_password_clicked_cb (CcWifiHotspotDialog *self)
g_assert (CC_IS_WIFI_HOTSPOT_DIALOG (self));
- if (self->wpa_supported)
- key = get_random_wpa_key ();
- else
- key = get_random_wep_key ();
+ key = get_random_wpa_key ();
gtk_entry_set_text (self->password_entry, key);
}
@@ -316,10 +295,13 @@ static void
hotspot_update_wireless_security_settings (CcWifiHotspotDialog *self)
{
NMSettingWirelessSecurity *setting;
- const gchar *value, *key_type;
+ const gchar *value;
+ NMDeviceWifiCapabilities caps;
g_assert (CC_IS_WIFI_HOTSPOT_DIALOG (self));
+ caps = nm_device_wifi_get_capabilities (self->device);
+
if (nm_connection_get_setting_wireless_security (self->connection) == NULL)
nm_connection_add_setting (self->connection, nm_setting_wireless_security_new ());
@@ -329,51 +311,29 @@ hotspot_update_wireless_security_settings (CcWifiHotspotDialog *self)
nm_setting_wireless_security_clear_groups (setting);
value = gtk_entry_get_text (self->password_entry);
- if (self->wpa_supported)
- key_type = "psk";
- else
- key_type = "wep-key0";
-
- if (self->wpa_supported)
- g_object_set (setting, "key-mgmt", "wpa-psk", NULL);
- else
- g_object_set (setting,
- "key-mgmt", "none",
- "wep-key-type", NM_WEP_KEY_TYPE_KEY,
- NULL);
+ g_object_set (setting, "key-mgmt", "wpa-psk", NULL);
if (!value || !*value)
{
g_autofree gchar *key = NULL;
- if (self->wpa_supported)
- key = get_random_wpa_key ();
- else
- key = get_random_wep_key ();
-
- g_object_set (setting, key_type, key, NULL);
+ key = get_random_wpa_key ();
+ g_object_set (setting, "psk", key, NULL);
}
else
- g_object_set (setting, key_type, value, NULL);
+ g_object_set (setting, "psk", value, NULL);
- if (self->wpa_supported)
+ if (caps & NM_WIFI_DEVICE_CAP_RSN)
{
- NMDeviceWifiCapabilities caps;
-
- caps = nm_device_wifi_get_capabilities (self->device);
-
- if (caps & NM_WIFI_DEVICE_CAP_RSN)
- {
- nm_setting_wireless_security_add_proto (setting, "rsn");
- nm_setting_wireless_security_add_pairwise (setting, "ccmp");
- nm_setting_wireless_security_add_group (setting, "ccmp");
- }
- else if (caps & NM_WIFI_DEVICE_CAP_WPA)
- {
- nm_setting_wireless_security_add_proto (setting, "wpa");
- nm_setting_wireless_security_add_pairwise (setting, "tkip");
- nm_setting_wireless_security_add_group (setting, "tkip");
- }
+ nm_setting_wireless_security_add_proto (setting, "rsn");
+ nm_setting_wireless_security_add_pairwise (setting, "ccmp");
+ nm_setting_wireless_security_add_group (setting, "ccmp");
+ }
+ else if (caps & NM_WIFI_DEVICE_CAP_WPA)
+ {
+ nm_setting_wireless_security_add_proto (setting, "wpa");
+ nm_setting_wireless_security_add_pairwise (setting, "tkip");
+ nm_setting_wireless_security_add_group (setting, "tkip");
}
}
@@ -510,18 +470,6 @@ cc_wifi_hotspot_dialog_set_device (CcWifiHotspotDialog *self,
g_set_object (&self->device, device);
- if (device)
- {
- NMDeviceWifiCapabilities caps;
-
- caps = nm_device_wifi_get_capabilities (device);
- self->wpa_supported = FALSE;
-
- if (caps & NM_WIFI_DEVICE_CAP_AP)
- if (caps & (NM_WIFI_DEVICE_CAP_RSN | NM_WIFI_DEVICE_CAP_WPA))
- self->wpa_supported = TRUE;
- }
-
wifi_hotspot_dialog_update_main_label (self);
}
diff --git a/panels/network/cc-wifi-panel.c b/panels/network/cc-wifi-panel.c
index 9ca6e6ee5..d2a20ea9a 100644
--- a/panels/network/cc-wifi-panel.c
+++ b/panels/network/cc-wifi-panel.c
@@ -194,10 +194,6 @@ get_connection_security_type (NMConnection *c)
key_mgmt = nm_setting_wireless_security_get_key_mgmt (setting);
- /* No IEEE 802.1x */
- if (g_strcmp0 (key_mgmt, "none") == 0)
- return "WEP";
-
if (g_strcmp0 (key_mgmt, "wpa-none") == 0 ||
g_strcmp0 (key_mgmt, "wpa-psk") == 0)
return "WPA";
@@ -212,7 +208,6 @@ get_wifi_password (NMConnection *c)
g_autoptr(GVariant) secrets = NULL;
g_autoptr(GError) error = NULL;
const gchar *sec_type, *password;
- gint wep_index;
g_assert (NM_IS_REMOTE_CONNECTION (c));
@@ -235,15 +230,7 @@ get_wifi_password (NMConnection *c)
return NULL;
}
- if (g_str_equal (sec_type, "WEP"))
- {
- wep_index = nm_setting_wireless_security_get_wep_tx_keyidx (setting);
- password = nm_setting_wireless_security_get_wep_key (setting, wep_index);
- }
- else
- {
- password = nm_setting_wireless_security_get_psk (setting);
- }
+ password = nm_setting_wireless_security_get_psk (setting);
return escape_string (password, FALSE);
}
diff --git a/panels/network/connection-editor/ce-page-details.c b/panels/network/connection-editor/ce-page-details.c
index 27433efe2..c068bcea0 100644
--- a/panels/network/connection-editor/ce-page-details.c
+++ b/panels/network/connection-editor/ce-page-details.c
@@ -80,20 +80,12 @@ static gchar *
get_ap_security_string (NMAccessPoint *ap)
{
NM80211ApSecurityFlags wpa_flags, rsn_flags;
- NM80211ApFlags flags;
GString *str;
- flags = nm_access_point_get_flags (ap);
wpa_flags = nm_access_point_get_wpa_flags (ap);
rsn_flags = nm_access_point_get_rsn_flags (ap);
str = g_string_new ("");
- if ((flags & NM_802_11_AP_FLAGS_PRIVACY) &&
- (wpa_flags == NM_802_11_AP_SEC_NONE) &&
- (rsn_flags == NM_802_11_AP_SEC_NONE)) {
- /* TRANSLATORS: this WEP WiFi security */
- g_string_append_printf (str, "%s, ", _("WEP"));
- }
if (wpa_flags != NM_802_11_AP_SEC_NONE) {
/* TRANSLATORS: this WPA WiFi security */
g_string_append_printf (str, "%s, ", _("WPA"));
diff --git a/panels/network/connection-editor/ce-page-security.c b/panels/network/connection-editor/ce-page-security.c
index 696971579..0f8bfc865 100644
--- a/panels/network/connection-editor/ce-page-security.c
+++ b/panels/network/connection-editor/ce-page-security.c
@@ -28,10 +28,8 @@
#include "ce-page.h"
#include "ce-page-security.h"
#include "wireless-security.h"
-#include "ws-dynamic-wep.h"
#include "ws-leap.h"
#include "ws-sae.h"
-#include "ws-wep-key.h"
#include "ws-wpa-eap.h"
#include "ws-wpa-psk.h"
@@ -82,14 +80,10 @@ get_default_type_for_security (NMSettingWirelessSecurity *sec)
key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec);
auth_alg = nm_setting_wireless_security_get_auth_alg (sec);
- /* No IEEE 802.1x */
- if (!strcmp (key_mgmt, "none"))
- return NMU_SEC_STATIC_WEP;
-
if (!strcmp (key_mgmt, "ieee8021x")) {
if (auth_alg && !strcmp (auth_alg, "leap"))
return NMU_SEC_LEAP;
- return NMU_SEC_DYNAMIC_WEP;
+ return NMU_SEC_INVALID;
}
#if NM_CHECK_VERSION(1,24,0)
@@ -245,9 +239,7 @@ finish_setup (CEPageSecurity *self)
self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_WEP40
- | NM_WIFI_DEVICE_CAP_CIPHER_WEP104
- | NM_WIFI_DEVICE_CAP_CIPHER_TKIP
+ dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_TKIP
| NM_WIFI_DEVICE_CAP_CIPHER_CCMP
| NM_WIFI_DEVICE_CAP_WPA
| NM_WIFI_DEVICE_CAP_RSN;
@@ -285,38 +277,6 @@ finish_setup (CEPageSecurity *self)
}
#endif
- if (nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
- WirelessSecurityWEPKey *ws_wep;
- NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY;
-
- if (default_type == NMU_SEC_STATIC_WEP) {
- sws = nm_connection_get_setting_wireless_security (self->connection);
- if (sws)
- wep_type = nm_setting_wireless_security_get_wep_key_type (sws);
- if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN)
- wep_type = NM_WEP_KEY_TYPE_KEY;
- }
-
- ws_wep = ws_wep_key_new (self->connection, NM_WEP_KEY_TYPE_KEY);
- if (ws_wep) {
- add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
- &iter, _("WEP 40/128-bit Key (Hex or ASCII)"),
- TRUE);
- if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY))
- active = item;
- item++;
- }
-
- ws_wep = ws_wep_key_new (self->connection, NM_WEP_KEY_TYPE_PASSPHRASE);
- if (ws_wep) {
- add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
- &iter, _("WEP 128-bit Passphrase"), TRUE);
- if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE))
- active = item;
- item++;
- }
- }
-
if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
WirelessSecurityLEAP *ws_leap;
@@ -330,19 +290,6 @@ finish_setup (CEPageSecurity *self)
}
}
- if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
- WirelessSecurityDynamicWEP *ws_dynamic_wep;
-
- ws_dynamic_wep = ws_dynamic_wep_new (self->connection);
- if (ws_dynamic_wep) {
- add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model,
- &iter, _("Dynamic WEP (802.1x)"), FALSE);
- if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP))
- active = item;
- item++;
- }
- }
-
if (nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0) ||
nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
WirelessSecurityWPAPSK *ws_wpa_psk;
@@ -533,8 +480,7 @@ ce_page_security_new (NMConnection *connection)
if (sws)
default_type = get_default_type_for_security (sws);
- if (default_type == NMU_SEC_STATIC_WEP ||
- default_type == NMU_SEC_LEAP ||
+ if (default_type == NMU_SEC_LEAP ||
default_type == NMU_SEC_WPA_PSK ||
#if NM_CHECK_VERSION(1,20,6)
default_type == NMU_SEC_SAE ||
@@ -546,8 +492,7 @@ ce_page_security_new (NMConnection *connection)
self->security_setting = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME;
}
- if (default_type == NMU_SEC_DYNAMIC_WEP ||
- default_type == NMU_SEC_WPA_ENTERPRISE ||
+ if (default_type == NMU_SEC_WPA_ENTERPRISE ||
default_type == NMU_SEC_WPA2_ENTERPRISE) {
self->security_setting = NM_SETTING_802_1X_SETTING_NAME;
}
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index 69fe2e122..7c0174da4 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -218,17 +218,12 @@ device_get_hotspot_security_details (NetDeviceWifi *self,
tmp_security = C_("Wifi security", "None");
/* Key management values:
- * "none" = WEP
* "wpa-none" = WPAv1 Ad-Hoc mode (not supported in NM >= 0.9.4)
* "wpa-psk" = WPAv2 Ad-Hoc mode (eg IBSS RSN) and AP-mode WPA v1 and v2
*/
key_mgmt = nm_setting_wireless_security_get_key_mgmt (sws);
- if (strcmp (key_mgmt, "none") == 0) {
- tmp_secret = nm_setting_wireless_security_get_wep_key (sws, 0);
- tmp_security = _("WEP");
- }
- else if (strcmp (key_mgmt, "wpa-none") == 0 ||
- strcmp (key_mgmt, "wpa-psk") == 0) {
+ if (strcmp (key_mgmt, "wpa-none") == 0 ||
+ strcmp (key_mgmt, "wpa-psk") == 0) {
tmp_secret = nm_setting_wireless_security_get_psk (sws);
tmp_security = _("WPA");
} else {
--
2.52.0

View File

@ -0,0 +1,45 @@
From 63a68ddea03b5e228560c947fb4574fa42156ff1 Mon Sep 17 00:00:00 2001
From: Luciano da Silva Ribas <lucribas@users>
Date: Thu, 22 Sep 2022 23:00:24 -0300
Subject: [PATCH] network: Fixed Network profiles shown on wrong device
Added missing interface name during network profile creation.
Fixes #353
Fixed issues from code review
(cherry picked from commit ee53bfd8b6bbbd018fdd7a2b1ea33e5a44a1b43b)
and
(cherry picked from commit 3182b7019fa7f59a68b51835117cd60e78e6815a)
---
panels/network/net-device-ethernet.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c
index f7cd6ae6b..856595b1d 100644
--- a/panels/network/net-device-ethernet.c
+++ b/panels/network/net-device-ethernet.c
@@ -404,6 +404,7 @@ add_profile_button_clicked_cb (NetDeviceEthernet *self)
g_autofree gchar *id = NULL;
NetConnectionEditor *editor;
const GPtrArray *connections;
+ const char *iface;
connection = nm_simple_connection_new ();
sc = NM_SETTING_CONNECTION (nm_setting_connection_new ());
@@ -421,6 +422,11 @@ add_profile_button_clicked_cb (NetDeviceEthernet *self)
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NULL);
+ iface = nm_device_get_iface (self->device);
+ g_object_set (sc,
+ NM_SETTING_CONNECTION_INTERFACE_NAME, iface,
+ NULL);
+
nm_connection_add_setting (connection, nm_setting_wired_new ());
editor = net_connection_editor_new (connection, self->device, NULL, self->client);
--
2.34.1

View File

@ -0,0 +1,78 @@
From bce5fcfafabc3cad27a450b01b262fb211f9b4fb Mon Sep 17 00:00:00 2001
From: Chris Williams <chrisawign@gmail.com>
Date: Tue, 21 Jan 2025 15:02:07 -0500
Subject: [PATCH] region: Always set all variables when setting system locale
localed's SetLocale method only sets the specified locale variables, so
when self->system_region is set to NULL, we must explicitly set each
variable to the configured system language to reset the system region
and not leave the previous values.
Without this change, when the login section is visible, changing the
system language doesn't reset the system region, which is inconsistent
with the user section. More significantly, in the login_auto_apply case,
setting the user language resets the user region but not the system
region. The user needs to reselect the region from the Formats chooser
in order to update the system region.
(cherry picked from commit abdecd6ede98b8249f8819783f1b663c7e9286cf)
---
panels/region/cc-region-panel.c | 37 ++++++++++++++++++---------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 3c8f03d34..7732a2f68 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -622,28 +622,31 @@ set_localed_locale (CcRegionPanel *self)
{
g_autoptr(GVariantBuilder) b = NULL;
g_autofree gchar *lang_value = NULL;
+ g_autofree gchar *time_value = NULL;
+ g_autofree gchar *numeric_value = NULL;
+ g_autofree gchar *monetary_value = NULL;
+ g_autofree gchar *measurement_value = NULL;
+ g_autofree gchar *paper_value = NULL;
+ const gchar *region = self->system_region;
+
+ if (region == NULL)
+ region = self->system_language;
b = g_variant_builder_new (G_VARIANT_TYPE ("as"));
lang_value = g_strconcat ("LANG=", self->system_language, NULL);
g_variant_builder_add (b, "s", lang_value);
- if (self->system_region != NULL) {
- g_autofree gchar *time_value = NULL;
- g_autofree gchar *numeric_value = NULL;
- g_autofree gchar *monetary_value = NULL;
- g_autofree gchar *measurement_value = NULL;
- g_autofree gchar *paper_value = NULL;
- time_value = g_strconcat ("LC_TIME=", self->system_region, NULL);
- g_variant_builder_add (b, "s", time_value);
- numeric_value = g_strconcat ("LC_NUMERIC=", self->system_region, NULL);
- g_variant_builder_add (b, "s", numeric_value);
- monetary_value = g_strconcat ("LC_MONETARY=", self->system_region, NULL);
- g_variant_builder_add (b, "s", monetary_value);
- measurement_value = g_strconcat ("LC_MEASUREMENT=", self->system_region, NULL);
- g_variant_builder_add (b, "s", measurement_value);
- paper_value = g_strconcat ("LC_PAPER=", self->system_region, NULL);
- g_variant_builder_add (b, "s", paper_value);
- }
+ time_value = g_strconcat ("LC_TIME=", region, NULL);
+ g_variant_builder_add (b, "s", time_value);
+ numeric_value = g_strconcat ("LC_NUMERIC=", region, NULL);
+ g_variant_builder_add (b, "s", numeric_value);
+ monetary_value = g_strconcat ("LC_MONETARY=", region, NULL);
+ g_variant_builder_add (b, "s", monetary_value);
+ measurement_value = g_strconcat ("LC_MEASUREMENT=", region, NULL);
+ g_variant_builder_add (b, "s", measurement_value);
+ paper_value = g_strconcat ("LC_PAPER=", region, NULL);
+ g_variant_builder_add (b, "s", paper_value);
+
g_dbus_proxy_call (self->localed,
"SetLocale",
g_variant_new ("(asb)", b, TRUE),
--
2.52.0

View File

@ -0,0 +1,43 @@
From 57b9f2ec29a5088a8b3dc6f81a28843f79045a35 Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Wed, 3 Jun 2026 10:24:12 +0200
Subject: [PATCH] users: Allow fingerprint management for remote users
fprtind seems to work just fine for enterprise login too.
---
panels/user-accounts/cc-fingerprint-manager.c | 3 +--
panels/user-accounts/cc-user-panel.c | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/panels/user-accounts/cc-fingerprint-manager.c b/panels/user-accounts/cc-fingerprint-manager.c
index 07a50e7b9..781cf9690 100644
--- a/panels/user-accounts/cc-fingerprint-manager.c
+++ b/panels/user-accounts/cc-fingerprint-manager.c
@@ -554,8 +554,7 @@ cc_fingerprint_manager_update_state (CcFingerprintManager *self,
g_return_if_fail (priv->current_task == NULL);
- if (act_user_get_uid (priv->user) != getuid () ||
- !act_user_is_local_account (priv->user))
+ if (act_user_get_uid (priv->user) != getuid ())
{
set_state (self, CC_FINGERPRINT_STATE_NONE);
return;
diff --git a/panels/user-accounts/cc-user-panel.c b/panels/user-accounts/cc-user-panel.c
index cf3b0e24a..a542ef134 100644
--- a/panels/user-accounts/cc-user-panel.c
+++ b/panels/user-accounts/cc-user-panel.c
@@ -893,9 +893,8 @@ show_user (ActUser *user, CcUserPanel *self)
gtk_label_set_label (self->language_button_label, name);
- /* Fingerprint: show when self, local, enabled, and possible */
+ /* Fingerprint: show when self, enabled, and possible */
show = (act_user_get_uid (user) == getuid() &&
- act_user_is_local_account (user) &&
(self->login_screen_settings &&
g_settings_get_boolean (self->login_screen_settings,
"enable-fingerprint-authentication")));
--
2.34.1

View File

@ -0,0 +1,28 @@
From 12985de631047866deaab04a70333689dac11e59 Mon Sep 17 00:00:00 2001
From: Felipe Borges <feborges@redhat.com>
Date: Fri, 10 Apr 2026 09:56:51 +0200
Subject: [PATCH] Reveal password for WS-SAE connections
https://redhat.atlassian.net/browse/RHEL-4232
---
panels/network/wireless-security/ws-sae.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/panels/network/wireless-security/ws-sae.c b/panels/network/wireless-security/ws-sae.c
index 89017ad6a..cfcb0ca4b 100644
--- a/panels/network/wireless-security/ws-sae.c
+++ b/panels/network/wireless-security/ws-sae.c
@@ -212,8 +212,8 @@ ws_sae_new (NMConnection *connection)
(HelperSecretFunc) nm_setting_wireless_security_get_psk);
}
- g_signal_connect (self->show_password_check, "toggled",
- G_CALLBACK (show_toggled_cb), self);
+ g_signal_connect_swapped (self->show_password_check, "toggled",
+ G_CALLBACK (show_toggled_cb), self);
/* Hide WPA/RSN for now since this can be autodetected by NM and the
* supplicant when connecting to the AP.
--
2.52.0

View File

@ -14,7 +14,7 @@
Name: gnome-control-center
Version: 40.0
Release: 44%{?dist}
Release: 51%{?dist}
Summary: Utilities to configure the GNOME desktop
License: GPLv2+ and CC-BY-SA
@ -89,6 +89,27 @@ Patch26: subscription-manager-translations.patch
# https://issues.redhat.com/browse/RHEL-4088
Patch27: 0001-calibrator-Avoid-clearing-background.patch
# https://issues.redhat.com/browse/RHEL-135180
Patch28: region-set-system-wide-locale-from-user.patch
# https://redhat.atlassian.net/browse/RHEL-111572
Patch29: info-overview-backport-nvidia-card-name-fixes.patch
# https://redhat.atlassian.net/browse/RHEL-166751
Patch30: network-drop-WEP-support.patch
# https://redhat.atlassian.net/browse/RHEL-4232
Patch31: wifi-allow-passwd-reveal-for-ws-sae.patch
# https://redhat.atlassian.net/browse/RHEL-173845
Patch32: users-allow-fingerprint-auth-for-enterprise-users.patch
# https://redhat.atlassian.net/browse/RHEL-146566
Patch33: 0001-wacom-Change-button-order-for-3-button-styli.patch
# https://issues.redhat.com/browse/RHEL-121793
Patch34: network-set-iface-name-explicitly.patch
BuildRequires: chrpath
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
@ -278,6 +299,34 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gnome-control-center
%dir %{_datadir}/gnome/wm-properties
%changelog
* Mon Aug 10 2026 Felipe Borges <feborges@redhat.com> - 40.0-51
- Set network interface names explicitly
Resolves: RHEL-121793
* Wed May 13 2026 Carlos Garnacho <cgarnach@redhat.com> - 40.0-50
- Change button order for 3-button styli
Resolves: RHEL-146566
* Wed Jun 03 2026 Felipe Borges <feborges@redhat.com> - 40.0-49
- Allow fingerprint management for enterprise users
Resolves: RHEL-173845
* Mon Apr 27 2026 Felipe Borges <feborges@redhat.com> - 40.0.48
- Fix Wi-Fi password reveal not working for WS-SAE security
Resolves: RHEL-4232
* Mon Apr 20 2026 Felipe Borges <feborges@redhat.com> - 40.0-47
- Drop WEP support
Resolves: RHEL-166751
* Tue Apr 14 2026 Felipe Borges <feborges@redhat.com> - 40.0-46
- Backport NVIDIA graphics card display name fixes
Resolves: RHEL-111572
* Tue Feb 10 2026 Felipe Borges <feborges@redhat.com> - 40.0-45
- Fix system locale not getting set from within user settings
Resolves: RHEL-135180
* Mon Dec 22 2025 Carlos Garnacho <cgarnach@redhat.com> - 40.0-44
- Fix graphical artifact in Wacom calibration UI
Resolves: RHEL-4088