[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1038777: bookworm-pu: package gnome-control-center/1:43.6-2~deb12u1



Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: gnome-control-center@packages.debian.org
Control: affects -1 + src:gnome-control-center

[ Reason ]
New upstream stable release

[ Impact ]
Fixes several upstream bugs, which I would classify as severity normal
to important in Debian terms.

[ Tests ]
A package functionally equivalent to the proposed version is in unstable
and testing, without apparent regressions.

Manual test: I upgraded a desktop system to the proposed version and
navigated through various preferences panels, with no apparent issues.
I haven't attempted to reproduce any specific bugs.

[ Risks ]
This is a key package, part of our default desktop environment.

If there are regressions, then I would expect them to be of a magnitude
similar to the issues fixed in this version.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
panels/display/cc-display-config-dbus.c:
    - Stop listing displays in the reverse of the intended order
      (gnome-control-center#2334 upstream)

panels/display/cc-display-settings.c:
    - Add 32:9 as a well-known aspect ratio

panels/network/connection-editor/net-connection-editor.c:
    - Fix a use-after-free crash when editing network connections

panels/thunderbolt/cc-bolt-panel.c:
    - Fix a crash when cancelling authentication for Thunderbolt

panels/user-accounts/cc-add-user-dialog.ui:
    - Remove a duplicate property from the "add user" UI

panels/user-accounts/cc-avatar-chooser.c:
    - Automatically close user avatar chooser before showing file
      chooser (gnome-control-center#2315 upstream)
    - Fix an assertion failure when cropping an avatar

panels/user-accounts/cc-crop-area.c:
    - Restore the default cursor when leaving the dialog to crop an
      avatar (gnome-control-center#2359 upstream)

panels/user-accounts/cc-user-panel.c:
    - Fix an assertion failure when activating the Users panel
      (gnome-control-center#2219 upstream)
    - Don't access User objects before they are fully loaded
      (gnome-control-center#2348, #2349 upstream)

panels/user-accounts/user-utils.c:
    - Don't allow commas in users' "real name" field, because the GECOS
      encoding in /etc/passwd cannot represent those
      (gnome-control-center#888 upstream)

panels/wwan/cc-wwan-data.c:
    - Populate list of previous WWAN (Mobile Network) connections more
      reliably, avoiding creation of duplicate connections in
      NetworkManager (gnome-control-center#1468 upstream)

... and there are also translation updates, which I've filtered out of the
diff because they're rather large.
debdiff *.dsc | filterdiff -p1 -x'debian/patches/*.patch' -x'po/*.po'

diffstat for gnome-control-center-43.4.1 gnome-control-center-43.6

 NEWS                                                                   |   20 
 debian/changelog                                                       |   45 
 debian/patches/build-Look-for-snapd-glib-2.patch                       |    2 
 debian/patches/keyboard-Allow-disabling-alternate-characters-key.patch |    2 
 debian/watch                                                           |    2 
 meson.build                                                            |    2 
 panels/display/cc-display-config-dbus.c                                |    2 
 panels/display/cc-display-settings.c                                   |    3 
 panels/network/connection-editor/net-connection-editor.c               |    2 
 panels/thunderbolt/cc-bolt-panel.c                                     |    7 
 panels/user-accounts/cc-add-user-dialog.ui                             |    1 
 panels/user-accounts/cc-avatar-chooser.c                               |    3 
 panels/user-accounts/cc-crop-area.c                                    |   14 
 panels/user-accounts/cc-user-panel.c                                   |   39 
 panels/user-accounts/user-utils.c                                      |   10 
 panels/wwan/cc-wwan-data.c                                             |   35 
 po/LINGUAS                                                             |    1 
 po/ab.po                                                               | 4401 ++++
 po/ca.po                                                               | 4858 ++---
 po/fo.po                                                               | 9310 ++++++++++
 po/fr.po                                                               | 6692 ++++---
 po/hu.po                                                               |  633 
 22 files changed, 20390 insertions(+), 5694 deletions(-)

diff -Nru gnome-control-center-43.4.1/debian/changelog gnome-control-center-43.6/debian/changelog
--- gnome-control-center-43.4.1/debian/changelog	2023-02-14 16:08:53.000000000 +0000
+++ gnome-control-center-43.6/debian/changelog	2023-06-15 11:35:10.000000000 +0100
@@ -1,3 +1,48 @@
+gnome-control-center (1:43.6-2~deb12u1) bookworm; urgency=medium
+
+  * Team upload
+  * Rebuild for bookworm
+
+ -- Simon McVittie <smcv@debian.org>  Thu, 15 Jun 2023 11:35:10 +0100
+
+gnome-control-center (1:43.6-2) unstable; urgency=medium
+
+  * Team upload
+  * Expand previous changelog entry to include more details of the
+    upstream changes
+
+ -- Simon McVittie <smcv@debian.org>  Tue, 13 Jun 2023 09:40:29 +0100
+
+gnome-control-center (1:43.6-1) unstable; urgency=medium
+
+  * New upstream bugfix release 43.5
+    - Populate list of previous WWAN (Mobile Network) connetions more
+      reliably, avoiding creation of duplicate connections in
+      NetworkManager (gnome-control-center#1468 upstream)
+    - Stop listing displays in the reverse of the intended order
+    - Add 32:9 as a well-known aspect ratio
+      (gnome-control-center#2334 upstream)
+    - Fix an assertion failure when activating the Users panel
+      (gnome-control-center#2219 upstream)
+    - Don't access User objects before they are fully loaded
+      (gnome-control-center#2348, #2349 upstream)
+    - Fix an assertion failure when cropping an avatar
+    - Don't allow commas in users' "real name" field, because the GECOS
+      encoding in /etc/passwd cannot represent those
+      (gnome-control-center#888 upstream)
+    - Automatically close user avatar chooser before showing file
+      chooser (gnome-control-center#2315 upstream)
+    - Restore the default cursor when leaving the dialog to crop an
+      avatar (gnome-control-center#2359 upstream)
+    - Fix a crash when cancelling authentication for Thunderbolt
+    - Remove a duplicate property from the "add user" UI
+    - Translation updates: ca, fr, hu
+  * New upstream bugfix release 43.6
+    - Fix a use-after-free crash when editing network connections
+    - Translation updates: ab, hu; add fo
+
+ -- Jeremy Bícha <jbicha@ubuntu.com>  Mon, 29 May 2023 15:21:14 -0400
+
 gnome-control-center (1:43.4.1-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru gnome-control-center-43.4.1/debian/watch gnome-control-center-43.6/debian/watch
--- gnome-control-center-43.4.1/debian/watch	2023-02-14 16:08:53.000000000 +0000
+++ gnome-control-center-43.6/debian/watch	2023-06-15 11:35:10.000000000 +0100
@@ -1,4 +1,4 @@
 version=4
 opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
 https://download.gnome.org/sources/@PACKAGE@/cache.json \
-	[\d.]+/@PACKAGE@-([\d.]+)@ARCHIVE_EXT@
+	43/@PACKAGE@-([\d.]+)@ARCHIVE_EXT@
diff -Nru gnome-control-center-43.4.1/meson.build gnome-control-center-43.6/meson.build
--- gnome-control-center-43.4.1/meson.build	2023-06-21 10:47:27.000000000 +0100
+++ gnome-control-center-43.6/meson.build	2023-06-21 10:47:28.000000000 +0100
@@ -1,6 +1,6 @@
 project(
   'gnome-control-center', 'c',
-        version : '43.4.1',
+        version : '43.6',
         license : 'GPL2+',
   meson_version : '>= 0.57.0'
 )
diff -Nru gnome-control-center-43.4.1/NEWS gnome-control-center-43.6/NEWS
--- gnome-control-center-43.4.1/NEWS	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/NEWS	2023-05-26 04:57:33.000000000 +0100
@@ -1,4 +1,24 @@
 ================
+Version 43.6
+================
+
+- Updated translations
+
+Network
+ - Fix crash when removing a connection
+
+================
+Version 43.5
+================
+
+ - Various fixes regarding updating the Cellular panel
+ - Fix order of monitors in display settings
+ - Add 32:9 to the known aspect ratios in display settings
+ - Fix behavior of User avatar chooser popover and file chooser
+ - Fix access to AccountsService object before loading
+ - Updated translations
+
+================
 Version 43.4
 ================
 
diff -Nru gnome-control-center-43.4.1/panels/display/cc-display-config-dbus.c gnome-control-center-43.6/panels/display/cc-display-config-dbus.c
--- gnome-control-center-43.4.1/panels/display/cc-display-config-dbus.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/display/cc-display-config-dbus.c	2023-05-26 04:57:33.000000000 +0100
@@ -1680,6 +1680,8 @@
                                  self, G_CONNECT_SWAPPED);
     }
 
+  self->monitors = g_list_reverse (self->monitors);
+
   while (TRUE)
     {
       g_autoptr(GVariant) variant = NULL;
diff -Nru gnome-control-center-43.4.1/panels/display/cc-display-settings.c gnome-control-center-43.6/panels/display/cc-display-settings.c
--- gnome-control-center-43.4.1/panels/display/cc-display-settings.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/display/cc-display-settings.c	2023-05-26 04:57:33.000000000 +0100
@@ -152,6 +152,9 @@
     case 23:
       aspect = "21∶9";
       break;
+    case 35:
+      aspect = "32∶9";
+      break;
     case 12:
       aspect = "5∶4";
       break;
diff -Nru gnome-control-center-43.4.1/panels/network/connection-editor/net-connection-editor.c gnome-control-center-43.6/panels/network/connection-editor/net-connection-editor.c
--- gnome-control-center-43.4.1/panels/network/connection-editor/net-connection-editor.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/network/connection-editor/net-connection-editor.c	2023-05-26 04:57:33.000000000 +0100
@@ -81,8 +81,8 @@
 static void
 cancel_editing (NetConnectionEditor *self)
 {
-        gtk_window_destroy (GTK_WINDOW (self));
         g_signal_emit (self, signals[DONE], 0, FALSE);
+        gtk_window_destroy (GTK_WINDOW (self));
 }
 
 static void
diff -Nru gnome-control-center-43.4.1/panels/thunderbolt/cc-bolt-panel.c gnome-control-center-43.6/panels/thunderbolt/cc-bolt-panel.c
--- gnome-control-center-43.4.1/panels/thunderbolt/cc-bolt-panel.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/thunderbolt/cc-bolt-panel.c	2023-05-26 04:57:33.000000000 +0100
@@ -601,7 +601,7 @@
                    gpointer      user_data)
 {
   g_autoptr(GError) error = NULL;
-  CcBoltPanel *panel = CC_BOLT_PANEL (user_data);
+  CcBoltPanel *panel;
   gboolean ok;
 
   ok = bolt_client_set_authmode_finish (BOLT_CLIENT (source_object), res, &error);
@@ -611,6 +611,10 @@
 
       g_warning ("Could not set authmode: %s", error->message);
 
+      if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+        return;
+
+      panel = CC_BOLT_PANEL (user_data);
       text = g_strdup_printf (_("Error switching direct mode: %s"), error->message);
       gtk_label_set_markup (panel->notification_label, text);
       gtk_revealer_set_reveal_child (panel->notification_revealer, TRUE);
@@ -619,6 +623,7 @@
       cc_bolt_panel_authmode_sync (panel);
     }
 
+  panel = CC_BOLT_PANEL (user_data);
   gtk_spinner_stop (panel->authmode_spinner);
   gtk_widget_set_sensitive (GTK_WIDGET (panel->authmode_switch), TRUE);
 }
diff -Nru gnome-control-center-43.4.1/panels/user-accounts/cc-add-user-dialog.ui gnome-control-center-43.6/panels/user-accounts/cc-add-user-dialog.ui
--- gnome-control-center-43.4.1/panels/user-accounts/cc-add-user-dialog.ui	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/user-accounts/cc-add-user-dialog.ui	2023-05-26 04:57:33.000000000 +0100
@@ -162,7 +162,6 @@
                     <child type="prefix">
                       <object class="GtkCheckButton" id="local_password_radio">
                         <property name="valign">center</property>
-                        <property name="group">local_password_login_radio</property>
                         <property name="use_underline">True</property>
                         <property name="group">local_password_login_radio</property>
                         <signal name="toggled" handler="local_password_radio_changed_cb" object="CcAddUserDialog" swapped="yes"/>
diff -Nru gnome-control-center-43.4.1/panels/user-accounts/cc-avatar-chooser.c gnome-control-center-43.6/panels/user-accounts/cc-avatar-chooser.c
--- gnome-control-center-43.4.1/panels/user-accounts/cc-avatar-chooser.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/user-accounts/cc-avatar-chooser.c	2023-05-26 04:57:33.000000000 +0100
@@ -89,7 +89,7 @@
         GtkWidget *dialog;
         GtkWindow *toplevel;
 
-        toplevel = (GtkWindow *)gtk_widget_get_native (GTK_WIDGET (self));
+        toplevel = (GtkWindow *)gtk_widget_get_native (GTK_WIDGET (self->transient_for));
         dialog = gtk_dialog_new_with_buttons ("",
                                               toplevel,
                                               GTK_DIALOG_USE_HEADER_BAR,
@@ -183,6 +183,7 @@
         g_signal_connect_object (chooser, "response",
                                  G_CALLBACK (file_chooser_response), self, G_CONNECT_SWAPPED);
 
+        gtk_popover_popdown (GTK_POPOVER (self));
         gtk_window_present (GTK_WINDOW (chooser));
 }
 
diff -Nru gnome-control-center-43.4.1/panels/user-accounts/cc-crop-area.c gnome-control-center-43.6/panels/user-accounts/cc-crop-area.c
--- gnome-control-center-43.4.1/panels/user-accounts/cc-crop-area.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/user-accounts/cc-crop-area.c	2023-05-26 04:57:33.000000000 +0100
@@ -273,6 +273,19 @@
 }
 
 static void
+on_leave (GtkEventControllerMotion *controller,
+           void                     *user_data)
+{
+    CcCropArea *area = CC_CROP_AREA (user_data);
+
+    if (area->paintable == NULL)
+        return;
+
+    /* Restore 'default' cursor */
+    update_cursor (area, 0, 0);
+}
+
+static void
 on_drag_begin (GtkGestureDrag *gesture,
                double          start_x,
                double          start_y,
@@ -585,6 +598,7 @@
     /* Add handlers for motion events */
     controller = gtk_event_controller_motion_new ();
     g_signal_connect (controller, "motion", G_CALLBACK (on_motion), area);
+    g_signal_connect (controller, "leave", G_CALLBACK (on_leave), area);
     gtk_widget_add_controller (GTK_WIDGET (area), GTK_EVENT_CONTROLLER (controller));
 
     area->scale = 0.0;
diff -Nru gnome-control-center-43.4.1/panels/user-accounts/cc-user-panel.c gnome-control-center-43.6/panels/user-accounts/cc-user-panel.c
--- gnome-control-center-43.4.1/panels/user-accounts/cc-user-panel.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/user-accounts/cc-user-panel.c	2023-05-26 04:57:33.000000000 +0100
@@ -102,6 +102,7 @@
         GtkOverlay      *users_overlay;
 
         ActUser *selected_user;
+        ActUser *pending_show_user;
         GPermission *permission;
         CcLanguageChooser *language_chooser;
         GListStore *other_users_model;
@@ -818,6 +819,18 @@
 }
 
 static void
+on_pending_show_user_is_loaded (ActUser     *user,
+                                GParamSpec  *param,
+                                CcUserPanel *self)
+{
+        if (!act_user_is_loaded (user)) {
+                return;
+        }
+
+        show_user (user, self);
+}
+
+static void
 show_user (ActUser *user, CcUserPanel *self)
 {
         g_autofree gchar *lang = NULL;
@@ -828,6 +841,23 @@
         g_autofree gchar *malcontent_control_path = NULL;
 #endif
 
+        if (self->pending_show_user != NULL) {
+                g_signal_handlers_disconnect_by_func (G_OBJECT (self->pending_show_user),
+                                                      on_pending_show_user_is_loaded,
+                                                      self);
+                g_clear_object (&self->pending_show_user);
+        }
+
+        if (!act_user_is_loaded (user)) {
+                g_set_object (&self->pending_show_user, user);
+                g_signal_connect_object (G_OBJECT (self->pending_show_user),
+                                         "notify::is-loaded",
+                                         G_CALLBACK (on_pending_show_user_is_loaded),
+                                         self,
+                                         0);
+                return;
+        }
+
         g_set_object (&self->selected_user, user);
 
         setup_avatar_for_user (self->user_avatar, user);
@@ -1408,6 +1438,10 @@
         gtk_widget_set_tooltip_text (GTK_WIDGET (self->remove_user_button),
                                      _("To delete the selected user account,\nclick the * icon first"));
 
+        self->avatar_chooser = cc_avatar_chooser_new (GTK_WIDGET (self));
+        gtk_menu_button_set_popover (self->user_avatar_edit_button,
+                                     GTK_WIDGET (self->avatar_chooser));
+
         g_object_get (self->um, "is-loaded", &loaded, NULL);
         if (loaded) {
                 users_loaded (self);
@@ -1415,10 +1449,6 @@
         } else {
                 g_signal_connect_object (self->um, "notify::is-loaded", G_CALLBACK (users_loaded), self, G_CONNECT_SWAPPED);
         }
-
-        self->avatar_chooser = cc_avatar_chooser_new (GTK_WIDGET (self));
-        gtk_menu_button_set_popover (self->user_avatar_edit_button,
-                                     GTK_WIDGET (self->avatar_chooser));
 }
 
 static GSettings *
@@ -1492,6 +1522,7 @@
         CcUserPanel *self = CC_USER_PANEL (object);
 
         g_clear_object (&self->selected_user);
+        g_clear_object (&self->pending_show_user);
         g_clear_object (&self->login_screen_settings);
         g_clear_pointer ((GtkWindow **)&self->language_chooser, gtk_window_destroy);
         g_clear_object (&self->permission);
diff -Nru gnome-control-center-43.4.1/panels/user-accounts/user-utils.c gnome-control-center-43.6/panels/user-accounts/user-utils.c
--- gnome-control-center-43.4.1/panels/user-accounts/user-utils.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/user-accounts/user-utils.c	2023-05-26 04:57:33.000000000 +0100
@@ -71,6 +71,7 @@
 is_valid_name (const gchar *name)
 {
         gboolean is_empty = TRUE;
+        gboolean found_comma = FALSE;
         const gchar *c;
 
         if (name == NULL)
@@ -79,6 +80,7 @@
         /* Valid names must contain:
          *   1) at least one character.
          *   2) at least one non-"space" character.
+         *   3) comma character not allowed. Issue #888
          */
         for (c = name; *c; c++) {
                 gunichar unichar;
@@ -90,13 +92,17 @@
                         break;
 
                 /* Check for non-space character */
-                if (!g_unichar_isspace (unichar)) {
+                if (is_empty && !g_unichar_isspace (unichar)) {
                         is_empty = FALSE;
+                }
+
+                if (unichar == ',') {
+                        found_comma = TRUE;
                         break;
                 }
         }
 
-        return !is_empty;
+        return !is_empty && !found_comma;
 }
 
 typedef struct {
diff -Nru gnome-control-center-43.4.1/panels/wwan/cc-wwan-data.c gnome-control-center-43.6/panels/wwan/cc-wwan-data.c
--- gnome-control-center-43.4.1/panels/wwan/cc-wwan-data.c	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/panels/wwan/cc-wwan-data.c	2023-05-26 04:57:33.000000000 +0100
@@ -90,6 +90,7 @@
   gint     priority;
   gboolean data_enabled; /* autoconnect enabled */
   gboolean home_only;    /* Data roaming */
+  gboolean apn_list_updated;    /* APN list updated from mobile-provider-info */
 };
 
 G_DEFINE_TYPE (CcWwanData, cc_wwan_data, G_TYPE_OBJECT)
@@ -277,7 +278,7 @@
   g_autoptr(GError) error = NULL;
   guint i = 0;
 
-  if (!self->sim || !self->operator_code)
+  if (!self->sim || !self->operator_code || self->apn_list_updated)
     return;
 
   if (!self->apn_list)
@@ -299,6 +300,8 @@
   if (self->apn_provider)
     apn_methods = nma_mobile_provider_get_methods (self->apn_provider);
 
+  self->apn_list_updated = TRUE;
+
   for (l = apn_methods; l; l = l->next, i++)
     {
       g_autoptr(CcWwanDataApn) apn = NULL;
@@ -313,6 +316,7 @@
       if (!apn)
         {
           apn = cc_wwan_data_apn_new ();
+          apn->access_method = l->data;
           g_list_store_insert (self->apn_list, i, apn);
         }
 
@@ -326,7 +330,8 @@
   const GPtrArray *nm_connections;
   guint i;
 
-  if (self->apn_list || !self->sim)
+  if (self->apn_list || !self->sim || !self->nm_device ||
+      nm_device_get_state (self->nm_device) <= NM_DEVICE_STATE_UNAVAILABLE)
     return;
 
   if (!self->apn_list)
@@ -381,6 +386,25 @@
 }
 
 static void
+wwan_device_3gpp_operator_code_changd_cb (CcWwanData *self)
+{
+  MMModem3gpp *modem_3gpp;
+
+  modem_3gpp = mm_object_peek_modem_3gpp (self->mm_object);
+
+  if (!self->operator_code)
+    {
+      self->operator_code = mm_modem_3gpp_dup_operator_code (modem_3gpp);
+
+      if (self->operator_code)
+        {
+          wwan_data_update_apn_list (self);
+          wwan_data_update_apn_list_db (self);
+        }
+    }
+}
+
+static void
 cc_wwan_data_get_property (GObject    *object,
                            guint       prop_id,
                            GValue     *value,
@@ -506,7 +530,12 @@
 
       modem_3gpp = mm_object_peek_modem_3gpp (mm_object);
       if (modem_3gpp)
-        self->operator_code = mm_modem_3gpp_dup_operator_code (modem_3gpp);
+        {
+          g_signal_connect_object (modem_3gpp, "notify::operator-code",
+                                   G_CALLBACK (wwan_device_3gpp_operator_code_changd_cb),
+                                   self, G_CONNECT_SWAPPED);
+          wwan_device_3gpp_operator_code_changd_cb (self);
+        }
     }
 
   if (self->active_connection)
diff -Nru gnome-control-center-43.4.1/po/LINGUAS gnome-control-center-43.6/po/LINGUAS
--- gnome-control-center-43.4.1/po/LINGUAS	2023-02-12 21:17:19.000000000 +0000
+++ gnome-control-center-43.6/po/LINGUAS	2023-05-26 04:57:33.000000000 +0100
@@ -33,6 +33,7 @@
 eu
 fa
 fi
+fo
 fr
 fur
 ga

Reply to: