Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: gnome-initial-se...@packages.debian.org Control: affects -1 + src:gnome-initial-setup Control: block -1 by 1029206
Please unblock package gnome-initial-setup. Note that this unblock request is entangled with #1029206: in their current state, either they will both migrate, or neither will. [ Reason ] * Fix the Privacy Policy link when asking whether to enable Mozilla Location Services (#1033228) * Compatibility with a longer-term-supported WebKitGTK (see #1029206) [ Impact ] A minor code change in 43.2-5 is a blocker for #1029206. Additionally, if not unblocked, the "privacy policy" hyperlink in the Privacy tab will not do anything when gnome-initial-setup is run automatically on a system that has no user accounts yet. This doesn't normally happen on Debian systems, because d-i creates a user account, but it can happen if d-i was not used or if the d-i-created user account was deleted. (#1033228) The "privacy policy" link not working seems like something that would make us look bad. [ Tests ] Tested manually with the steps in #1033228. Briefly: deleted the user account created by d-i, then rebooted and went through initial setup as if for the first time, then re-ran initial setup as the logged-in user to simulate what would normally happen after a d-i installation. The upstream change for #1033228 includes a corresponding change for a UI toggle for whether to enable automatic crash reporting (Fedora's abrt). In practice this widget is not visible in Debian, because we don't have abrt, so that part is untested - but it's very similar to the UI toggle for location services. [ Risks ] The upstream changes to fix #1033228 are mostly declarative and I would say they are low risk. The upstream changes to fix FTBFS with the new WebKitGTK from #1029206 are very simple. If #1029206 can't happen for some reason, then this version will be unable to migrate. A contingency plan is to revert the build-dependency change. The patch applied for #1029206 is unnecessary but harmless if we revert to the old WebKitGTK. [ 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 testing unblock gnome-initial-setup/43.2-6
diffstat for gnome-initial-setup-43.2 gnome-initial-setup-43.2 debian/changelog | 28 ++ debian/control | 2 debian/control.in | 2 debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch | 26 ++ debian/patches/privacy-Move-subtitles-to-separate-labels.patch | 121 ++++++++++ debian/patches/series | 2 gnome-initial-setup/gis-driver.c | 2 gnome-initial-setup/pages/privacy/gis-privacy-page.c | 6 gnome-initial-setup/pages/privacy/gis-privacy-page.ui | 31 ++ 9 files changed, 214 insertions(+), 6 deletions(-) diff -Nru gnome-initial-setup-43.2/debian/changelog gnome-initial-setup-43.2/debian/changelog --- gnome-initial-setup-43.2/debian/changelog 2023-03-06 23:46:19.000000000 +0000 +++ gnome-initial-setup-43.2/debian/changelog 2023-03-20 15:27:27.000000000 +0000 @@ -1,3 +1,31 @@ +gnome-initial-setup (43.2-6) unstable; urgency=medium + + * Team upload + * d/p/privacy-Move-subtitles-to-separate-labels.patch: + Fix Mozilla Location Services privacy policy link in kiosk mode. + The privacy policy links on the Privacy page are meant to be overridden + to open in an embedded (WebKitGTK-based) web browser widget instead of + an external web browser, but a regression in the port to GTK 4 between + GNOME 42 and 43 caused this behaviour to break. + In existing-user mode (run on the first GNOME login for a new user + account), the link would previously have opened in the default web + browser (normally Firefox), which is harmless but was not the + intended UX. + In new-user mode (when no user accounts exist), Initial Setup runs in a + captive "kiosk mode" to create the first user account. In this mode, the + link would previously not do anything. A mitigation is that this failure + mode is rarely seen in Debian, because the installer normally creates a + user account. (Closes: #1033228) + + -- Simon McVittie <s...@debian.org> Mon, 20 Mar 2023 15:27:27 +0000 + +gnome-initial-setup (43.2-5) unstable; urgency=medium + + * Build against webkitgtk 6.0 instead of 5.0 + * Cherry-pick a build fix for latest webkitgtk + + -- Jeremy Bicha <jbi...@ubuntu.com> Wed, 15 Mar 2023 20:18:52 -0400 + gnome-initial-setup (43.2-4) unstable; urgency=medium * Team upload diff -Nru gnome-initial-setup-43.2/debian/control gnome-initial-setup-43.2/debian/control --- gnome-initial-setup-43.2/debian/control 2023-03-06 23:46:19.000000000 +0000 +++ gnome-initial-setup-43.2/debian/control 2023-03-20 15:27:27.000000000 +0000 @@ -36,7 +36,7 @@ librest-dev (>= 0.9.1), libsecret-1-dev (>= 0.18.8), libsystemd-dev [linux-any], - libwebkit2gtk-5.0-dev, + libwebkitgtk-6.0-dev, libxml2-utils, meson (>= 0.50.0), systemd ( >= 242), diff -Nru gnome-initial-setup-43.2/debian/control.in gnome-initial-setup-43.2/debian/control.in --- gnome-initial-setup-43.2/debian/control.in 2023-03-06 23:46:19.000000000 +0000 +++ gnome-initial-setup-43.2/debian/control.in 2023-03-20 15:27:27.000000000 +0000 @@ -32,7 +32,7 @@ librest-dev (>= 0.9.1), libsecret-1-dev (>= 0.18.8), libsystemd-dev [linux-any], - libwebkit2gtk-5.0-dev, + libwebkitgtk-6.0-dev, libxml2-utils, meson (>= 0.50.0), systemd ( >= 242), diff -Nru gnome-initial-setup-43.2/debian/patches/privacy-Move-subtitles-to-separate-labels.patch gnome-initial-setup-43.2/debian/patches/privacy-Move-subtitles-to-separate-labels.patch --- gnome-initial-setup-43.2/debian/patches/privacy-Move-subtitles-to-separate-labels.patch 1970-01-01 01:00:00.000000000 +0100 +++ gnome-initial-setup-43.2/debian/patches/privacy-Move-subtitles-to-separate-labels.patch 2023-03-20 15:27:27.000000000 +0000 @@ -0,0 +1,121 @@ +From: Georges Basile Stavracas Neto <georges.stavra...@gmail.com> +Date: Tue, 14 Mar 2023 15:29:45 -0300 +Subject: privacy: Move subtitles to separate labels + +Prior to 71e3e2b4, the subtitles were contained into separate +GtkLabels connected to the the 'activate-link' signal. That commit +moved these labels to inside the corresponding AdwActionRows, but +did not account for the 'activate-link' signal. + +To the best of my knowledgethere is currently no way to properly +support this with libadwaita rows. In addition to that, the latest +mockup [1] suggest placing these labels beneath the listbox anyway. + +Move the subtitle labels to outside the action row, into a separate +labels beneath the listbox. Connect to the 'activate-link' signal +again. + +[1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/raw/master/initial-setup/initial-setup.png + +(cherry picked from commit d230f18dc50bc40977b613845c8d50d1327cacf4) + +Bug: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/181 +Bug-Debian: https://bugs.debian.org/1033228 +Forwarded: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/merge_requests/196 +--- + .../pages/privacy/gis-privacy-page.c | 6 ++--- + .../pages/privacy/gis-privacy-page.ui | 31 +++++++++++++++++++++- + 2 files changed, 33 insertions(+), 4 deletions(-) + +diff --git a/gnome-initial-setup/pages/privacy/gis-privacy-page.c b/gnome-initial-setup/pages/privacy/gis-privacy-page.c +index 3632142..21e5d48 100644 +--- a/gnome-initial-setup/pages/privacy/gis-privacy-page.c ++++ b/gnome-initial-setup/pages/privacy/gis-privacy-page.c +@@ -42,7 +42,7 @@ struct _GisPrivacyPagePrivate + { + GtkWidget *location_switch; + GtkWidget *reporting_group; +- GtkWidget *reporting_row; ++ GtkWidget *reporting_label; + GtkWidget *reporting_switch; + GSettings *location_settings; + GSettings *privacy_settings; +@@ -82,7 +82,7 @@ update_os_data (GisPrivacyPage *page) + subtitle = g_strdup_printf (_("Sends technical reports that have personal information automatically " + "removed. Data is collected by %s."), name); + } +- adw_action_row_set_subtitle (ADW_ACTION_ROW (priv->reporting_row), subtitle); ++ gtk_label_set_markup (GTK_LABEL (priv->reporting_label), subtitle); + } + + static void +@@ -244,7 +244,7 @@ gis_privacy_page_class_init (GisPrivacyPageClass *klass) + gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/initial-setup/gis-privacy-page.ui"); + gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, location_switch); + gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_group); +- gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_row); ++ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_label); + gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_switch); + gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), activate_link); + +diff --git a/gnome-initial-setup/pages/privacy/gis-privacy-page.ui b/gnome-initial-setup/pages/privacy/gis-privacy-page.ui +index 84ea8e3..6c48d5f 100644 +--- a/gnome-initial-setup/pages/privacy/gis-privacy-page.ui ++++ b/gnome-initial-setup/pages/privacy/gis-privacy-page.ui +@@ -25,7 +25,6 @@ + <object class="AdwActionRow"> + <property name="use-markup">True</property> + <property name="title" translatable="yes">Location Services</property> +- <property name="subtitle" translatable="yes">Allows applications to determine your geographical location. Uses the Mozilla Location Service (<a href='https://location.services.mozilla.com/privacy'>privacy policy</a>).</property> + <property name="activatable-widget">location_switch</property> + <child> + <object class="GtkSwitch" id="location_switch"> +@@ -34,11 +33,27 @@ + </child> + </object> + </child> ++ <child> ++ <object class="GtkLabel"> ++ <property name="margin-top">12</property> ++ <property name="wrap">True</property> ++ <property name="wrap-mode">word-char</property> ++ <property name="use-markup">True</property> ++ <property name="ellipsize">none</property> ++ <property name="xalign">0.0</property> ++ <property name="label" translatable="yes">Allows applications to determine your geographical location. Uses the Mozilla Location Service (<a href='https://location.services.mozilla.com/privacy'>privacy policy</a>).</property> ++ <signal name="activate-link" handler="activate_link" object="GisPrivacyPage" swapped="no" /> ++ <style> ++ <class name="caption" /> ++ </style> ++ </object> ++ </child> + </object> + </child> + + <child> + <object class="AdwPreferencesGroup" id="reporting_group"> ++ <property name="margin-top">12</property> + <child> + <object class="AdwActionRow" id="reporting_row"> + <property name="title" translatable="yes">Automatic Problem Reporting</property> +@@ -50,6 +65,20 @@ + </child> + </object> + </child> ++ <child> ++ <object class="GtkLabel" id="reporting_label"> ++ <property name="margin-top">12</property> ++ <property name="wrap">True</property> ++ <property name="wrap-mode">word-char</property> ++ <property name="use-markup">True</property> ++ <property name="ellipsize">none</property> ++ <property name="xalign">0.0</property> ++ <signal name="activate-link" handler="activate_link" object="GisPrivacyPage" swapped="no" /> ++ <style> ++ <class name="caption" /> ++ </style> ++ </object> ++ </child> + </object> + </child> + diff -Nru gnome-initial-setup-43.2/debian/patches/series gnome-initial-setup-43.2/debian/patches/series --- gnome-initial-setup-43.2/debian/patches/series 2023-03-06 23:46:19.000000000 +0000 +++ gnome-initial-setup-43.2/debian/patches/series 2023-03-20 15:27:27.000000000 +0000 @@ -4,3 +4,5 @@ keyboard-Update-filter-and-sort-when-the-display-name-cha.patch driver-Set-a-non-trivial-window-title.patch reenable-existing-user-mode.patch +Update-for-removal-of-WebKitGTK-sandbox-API.patch +privacy-Move-subtitles-to-separate-labels.patch diff -Nru gnome-initial-setup-43.2/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch gnome-initial-setup-43.2/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch --- gnome-initial-setup-43.2/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch 1970-01-01 01:00:00.000000000 +0100 +++ gnome-initial-setup-43.2/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch 2023-03-20 15:27:27.000000000 +0000 @@ -0,0 +1,26 @@ +From: Michael Catanzaro <mcatanz...@redhat.com> +Date: Thu, 19 Jan 2023 20:07:40 -0600 +Subject: Update for removal of WebKitGTK sandbox API + +WebKitGTK 2.39.5 contains an ABI break. The sandbox is now mandatory, so +the API to enable/disable it is gone. + +(cherry picked from commit 1a8f9ecfceb2e3106910b7bf7987f0fc75886670) +--- + gnome-initial-setup/gis-driver.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gnome-initial-setup/gis-driver.c b/gnome-initial-setup/gis-driver.c +index 8459efa..574887c 100644 +--- a/gnome-initial-setup/gis-driver.c ++++ b/gnome-initial-setup/gis-driver.c +@@ -788,7 +788,9 @@ gis_driver_startup (GApplication *app) + + G_APPLICATION_CLASS (gis_driver_parent_class)->startup (app); + ++#if !WEBKIT_CHECK_VERSION(2, 39, 5) + webkit_web_context_set_sandbox_enabled (context, TRUE); ++#endif + + if (driver->mode == GIS_DRIVER_MODE_NEW_USER) + connect_to_gdm (driver); diff -Nru gnome-initial-setup-43.2/gnome-initial-setup/gis-driver.c gnome-initial-setup-43.2/gnome-initial-setup/gis-driver.c --- gnome-initial-setup-43.2/gnome-initial-setup/gis-driver.c 2023-03-20 16:33:29.000000000 +0000 +++ gnome-initial-setup-43.2/gnome-initial-setup/gis-driver.c 2023-03-20 16:33:29.000000000 +0000 @@ -788,7 +788,9 @@ G_APPLICATION_CLASS (gis_driver_parent_class)->startup (app); +#if !WEBKIT_CHECK_VERSION(2, 39, 5) webkit_web_context_set_sandbox_enabled (context, TRUE); +#endif if (driver->mode == GIS_DRIVER_MODE_NEW_USER) connect_to_gdm (driver); diff -Nru gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.c gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.c --- gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.c 2022-12-02 15:11:34.000000000 +0000 +++ gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.c 2023-03-20 16:33:29.000000000 +0000 @@ -42,7 +42,7 @@ { GtkWidget *location_switch; GtkWidget *reporting_group; - GtkWidget *reporting_row; + GtkWidget *reporting_label; GtkWidget *reporting_switch; GSettings *location_settings; GSettings *privacy_settings; @@ -82,7 +82,7 @@ subtitle = g_strdup_printf (_("Sends technical reports that have personal information automatically " "removed. Data is collected by %s."), name); } - adw_action_row_set_subtitle (ADW_ACTION_ROW (priv->reporting_row), subtitle); + gtk_label_set_markup (GTK_LABEL (priv->reporting_label), subtitle); } static void @@ -244,7 +244,7 @@ gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/initial-setup/gis-privacy-page.ui"); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, location_switch); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_group); - gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_row); + gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_label); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisPrivacyPage, reporting_switch); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), activate_link); diff -Nru gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.ui gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.ui --- gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.ui 2022-12-02 15:11:34.000000000 +0000 +++ gnome-initial-setup-43.2/gnome-initial-setup/pages/privacy/gis-privacy-page.ui 2023-03-20 16:33:29.000000000 +0000 @@ -25,7 +25,6 @@ <object class="AdwActionRow"> <property name="use-markup">True</property> <property name="title" translatable="yes">Location Services</property> - <property name="subtitle" translatable="yes">Allows applications to determine your geographical location. Uses the Mozilla Location Service (<a href='https://location.services.mozilla.com/privacy'>privacy policy</a>).</property> <property name="activatable-widget">location_switch</property> <child> <object class="GtkSwitch" id="location_switch"> @@ -34,11 +33,27 @@ </child> </object> </child> + <child> + <object class="GtkLabel"> + <property name="margin-top">12</property> + <property name="wrap">True</property> + <property name="wrap-mode">word-char</property> + <property name="use-markup">True</property> + <property name="ellipsize">none</property> + <property name="xalign">0.0</property> + <property name="label" translatable="yes">Allows applications to determine your geographical location. Uses the Mozilla Location Service (<a href='https://location.services.mozilla.com/privacy'>privacy policy</a>).</property> + <signal name="activate-link" handler="activate_link" object="GisPrivacyPage" swapped="no" /> + <style> + <class name="caption" /> + </style> + </object> + </child> </object> </child> <child> <object class="AdwPreferencesGroup" id="reporting_group"> + <property name="margin-top">12</property> <child> <object class="AdwActionRow" id="reporting_row"> <property name="title" translatable="yes">Automatic Problem Reporting</property> @@ -50,6 +65,20 @@ </child> </object> </child> + <child> + <object class="GtkLabel" id="reporting_label"> + <property name="margin-top">12</property> + <property name="wrap">True</property> + <property name="wrap-mode">word-char</property> + <property name="use-markup">True</property> + <property name="ellipsize">none</property> + <property name="xalign">0.0</property> + <signal name="activate-link" handler="activate_link" object="GisPrivacyPage" swapped="no" /> + <style> + <class name="caption" /> + </style> + </object> + </child> </object> </child>