--- Begin Message ---
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>
--- End Message ---