summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/README.source19
-rw-r--r--debian/changelog574
-rw-r--r--debian/control72
-rw-r--r--debian/control.in68
-rw-r--r--debian/copyright39
-rw-r--r--debian/docs3
-rw-r--r--debian/gbp.conf17
-rw-r--r--debian/gnome-initial-setup.maintscript1
-rw-r--r--debian/gnome-initial-setup.pkla6
-rw-r--r--debian/install1
-rw-r--r--debian/patches/Add-StartupWMClass-to-.desktop-file.patch29
-rw-r--r--debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch26
-rw-r--r--debian/patches/driver-Set-a-non-trivial-window-title.patch28
-rw-r--r--debian/patches/keyboard-Correctly-update-labels-for-IBus-engines.patch189
-rw-r--r--debian/patches/keyboard-Resort-refilter-list-when-picking-shortlist.patch96
-rw-r--r--debian/patches/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch46
-rw-r--r--debian/patches/privacy-Move-subtitles-to-separate-labels.patch121
-rw-r--r--debian/patches/reenable-existing-user-mode.patch36
-rw-r--r--debian/patches/series8
-rw-r--r--debian/postinst15
-rw-r--r--debian/postrm13
-rwxr-xr-xdebian/rules39
-rw-r--r--debian/source/format1
-rw-r--r--debian/upstream/metadata6
-rw-r--r--debian/vendor.conf2
-rw-r--r--debian/watch4
26 files changed, 1459 insertions, 0 deletions
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..16579b9
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,19 @@
+Testing this package
+====================
+
+Test Case 1
+---------------
+rm ~/.config/gnome-initial-setup-done
+Log out then log back in
+gnome-initial-setup should automatically start
+
+Test Case 2
+----------------
+Create a new user
+Log in as the new user
+gnome-initial-setup should automatically start
+
+Test Case 3
+----------------
+Run this command
+/usr/libexec/gnome-initial-setup --existing-user
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..090eaf0
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,574 @@
+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 <smcv@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 <jbicha@ubuntu.com> Wed, 15 Mar 2023 20:18:52 -0400
+
+gnome-initial-setup (43.2-4) unstable; urgency=medium
+
+ * Team upload
+ * d/p/keyboard-Resort-refilter-list-when-picking-shortlist.patch:
+ Add patch from upstream 44.rc to display more input methods and
+ keyboard layouts without clicking the "more..." button. This has
+ a known issue that the shortlist of keyboard layouts is often not
+ particularly useful, but at least it includes the default and
+ current layouts (possibly different) and some other possibilities.
+ * d/p/keyboard-Correctly-update-labels-for-IBus-engines.patch,
+ d/p/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch:
+ Rework patches for xkb layout and IBus method selection, fixing a
+ crash on startup (Closes: #1032448)
+ * d/README.source: Add some notes on how to smoke-test this package.
+ Thanks to Jeremy Bicha (via #1032448)
+ * d/p/driver-Set-a-non-trivial-window-title.patch:
+ Add patch to set a window title.
+ This is one of the first things a new GNOME user will see, so let's
+ make it a bit more polished.
+
+ -- Simon McVittie <smcv@debian.org> Mon, 06 Mar 2023 23:46:19 +0000
+
+gnome-initial-setup (43.2-3) unstable; urgency=medium
+
+ * Team upload
+ * d/p/Add-StartupWMClass-to-.desktop-file.patch:
+ Replace previous patch for app ID handling with upstream equivalent.
+ gnome-initial-setup is not a syntactically valid app ID. Return to the
+ syntactically valid app ID used upstream, and set the StartupWMClass
+ instead.
+ This gives us a correct window title in the Overview and the
+ Alt+(key above Tab) window switcher, unlike the patch in 43.2-2.
+ * d/p/reenable-existing-user-mode.patch:
+ Add a note of which upstream commit we're reverting
+ * d/patches: Reorder with closest-to-upstream first
+ * d/p/keyboard-Correctly-update-labels-for-IBus-engines.patch,
+ d/p/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch:
+ Correctly update input method chooser with info from IBus.
+ This ensures that when the default is an IBus-based input method like
+ Anthy (currently GNOME's default for ja_JP in bookworm) or Mozc (requested
+ as a new default for ja_JP in #1029821), it will be displayed with its
+ correct label like "Japanese (Anthy)" or "日本語 (Mozc)" instead of
+ a placeholder name "anthy" or "mozc-jp". (Closes: #1032382)
+
+ -- Simon McVittie <smcv@debian.org> Sun, 05 Mar 2023 17:39:30 +0000
+
+gnome-initial-setup (43.2-2) unstable; urgency=medium
+
+ * Add patch to fix broken icon and app name
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Thu, 02 Mar 2023 17:32:26 -0500
+
+gnome-initial-setup (43.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Tue, 06 Dec 2022 09:27:10 -0500
+
+gnome-initial-setup (43.1-2) unstable; urgency=medium
+
+ * Team upload
+ * Depend on polkitd and pkexec instead of transitional policykit-1.
+ This package runs pkexec, so that dependency is still needed.
+ * d/copyright: use spaces rather than tabs to start continuation lines
+ * d/control.in: Update standards version to 4.6.1 (no changes needed)
+ * d/upstream/metadata: Update Gitlab URLs
+
+ -- Simon McVittie <smcv@debian.org> Tue, 15 Nov 2022 08:36:43 +0000
+
+gnome-initial-setup (43.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Tue, 18 Oct 2022 13:08:46 -0400
+
+gnome-initial-setup (43.0-1) unstable; urgency=medium
+
+ [ Jeremy Bicha ]
+ * New upstream release
+ * Re-enable Privacy page
+ * Re-enable malcontent integration for Debian
+
+ [ Simon McVittie ]
+ * d/control.in: Replace transitional libfontconfig1-dev with libfontconfig-dev
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Mon, 19 Sep 2022 11:44:22 -0400
+
+gnome-initial-setup (43~rc.1-1) unstable; urgency=high
+
+ * New upstream release
+ * Add patch to disable privacy page. It uses webkitgtk 5.0
+ which is still only in Debian Experimental
+ * debian/control.in: Drop webkitgtk from Build-Depends for now
+ * Add patch from Ubuntu to re-enable existing-user mode.
+ It was disabled upstream because it conflicts with gnome-tour
+ but gnome-tour isn't available in Debian or Ubuntu yet
+ * Release to unstable (Closes: #1019106)
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Wed, 07 Sep 2022 11:04:27 -0400
+
+gnome-initial-setup (43~beta-1) experimental; urgency=medium
+
+ * New upstream release
+ * Switch to gtk4, libadwaita, and libsoup3
+ * Drop obsolete cheese dependency
+ * Build-Depend on libxml2-utils for xmllint
+ * Temporarily disable malcontent integration
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Sun, 28 Aug 2022 15:34:39 -0400
+
+gnome-initial-setup (42.2-1) unstable; urgency=medium
+
+ * New upstream translations release
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Mon, 06 Jun 2022 16:47:25 -0400
+
+gnome-initial-setup (42.1.1-1) unstable; urgency=medium
+
+ * New upstream translations release
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Thu, 21 Apr 2022 13:37:45 -0400
+
+gnome-initial-setup (42.1-1) unstable; urgency=medium
+
+ [ Jeremy Bicha ]
+ * New upstream translations release
+ * Add debian/upstream/metadata
+ * Bump Standards-Version to 4.6.0
+
+ [ Will Thompson ]
+ * debian/copyright: Remove obsolete license exception for um-realm-manager.*
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Mon, 18 Apr 2022 11:55:21 -0400
+
+gnome-initial-setup (42.0.1-2) unstable; urgency=medium
+
+ * Switch to libgweather4
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Mon, 28 Mar 2022 11:55:08 -0400
+
+gnome-initial-setup (42.0.1-1) unstable; urgency=medium
+
+ * New upstream release, remove patch included in the update
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Thu, 24 Mar 2022 14:50:12 +0100
+
+gnome-initial-setup (42~beta-1) unstable; urgency=medium
+
+ * New upstream release
+ * Drop all patches: applied in new release
+ * Add patch to support GNOME 42 dark theme preference
+ * Revert switch to libgweather4
+ * Build-Depend on libgnome-desktop-4-dev instead of libgnome-desktop-3-dev
+ * debian/control.in: Build-Depend on libhandy
+ * debian/vendor.conf: Drop unused run_welcome_tour line
+
+ -- Jeremy Bicha <jeremy.bicha@canonical.com> Wed, 16 Feb 2022 10:34:12 -0500
+
+gnome-initial-setup (41.2-2) unstable; urgency=medium
+
+ * Team upload
+ * d/patches: Update to upstream gnome-41 branch commit 41.2-2-g916995f0
+ - Update Icelandic translation
+ * d/p/build-Fix-Meson-deprecation-warning.patch:
+ Add patch from upstream to fix FTBFS with recent Meson
+ (Closes: #1004780)
+
+ -- Simon McVittie <smcv@debian.org> Tue, 01 Feb 2022 23:03:00 +0000
+
+gnome-initial-setup (41.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * debian/vendor.conf: Don't try to run the welcome tour on Ubuntu
+
+ -- Jeremy Bicha <jbicha@debian.org> Sun, 05 Dec 2021 02:57:19 -0500
+
+gnome-initial-setup (41.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Bump minimum meson to 0.50.0
+ * Install Ubuntu's vendor.conf in upstream recommended /usr/share/
+ * Don't build with malcontent on Ubuntu since it's not in Ubuntu main
+
+ -- Jeremy Bicha <jbicha@debian.org> Fri, 17 Sep 2021 07:05:14 -0400
+
+gnome-initial-setup (40.4-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Jeremy Bicha <jbicha@debian.org> Sun, 22 Aug 2021 09:34:06 -0400
+
+gnome-initial-setup (40.2-2) unstable; urgency=medium
+
+ * Bump debhelper-compat to 13
+ * debian/rules: minor cleanup
+ * Release to unstable
+
+ -- Jeremy Bicha <jbicha@debian.org> Sun, 22 Aug 2021 09:00:43 -0400
+
+gnome-initial-setup (40.2-1) experimental; urgency=medium
+
+ * New upstream release
+ * debian/gnome-initial-setup.maintscript:
+ - remove obsolete gnome-welcome-tour.desktop
+
+ [ Gunnar Hjalmarsson ]
+ * Stop recommending gnome-getting-started-docs - archived upstream
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Tue, 08 Jun 2021 16:20:16 +0200
+
+gnome-initial-setup (40.1-1) experimental; urgency=medium
+
+ * New upstream release
+ * Remove .desktop symlink hack, the issue is fixed upstream now
+ * debian/patches/revert_gnome_tour.patch:
+ - removed, the code it was patching has been deprecated
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Fri, 28 May 2021 12:56:59 +0200
+
+gnome-initial-setup (3.38.5-2) experimental; urgency=medium
+
+ * debian/control.in:
+ - Build-Depends on systemd, some other required package used to pull
+ it in but isn't anymore which is failing the build
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Mon, 17 May 2021 21:56:29 +0200
+
+gnome-initial-setup (3.38.5-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Mon, 17 May 2021 16:23:38 +0200
+
+gnome-initial-setup (3.38.4-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Fri, 19 Feb 2021 11:47:41 +0100
+
+gnome-initial-setup (3.38.3-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Wed, 20 Jan 2021 16:46:38 +0100
+
+gnome-initial-setup (3.38.1-1) unstable; urgency=medium
+
+ * New upstream release
+ * debian/control.in:
+ - updated meson requirement
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Mon, 05 Oct 2020 11:15:01 +0200
+
+gnome-initial-setup (3.38.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Tue, 15 Sep 2020 16:27:03 +0200
+
+gnome-initial-setup (3.37.91-1) experimental; urgency=medium
+
+ * New upstream release
+ * debian/control.in:
+ - require gsettings-desktop-schemas and webkitgtk 2.26
+ * debian/copyright:
+ - updated list of copyright owners
+ * debian/docs:
+ - updated for the README renaming
+ * debian/patches/revert_gnome_tour.patch:
+ - revert back to start yelp until gnome-tour is packaged in Debian
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Fri, 14 Aug 2020 15:29:10 +0200
+
+gnome-initial-setup (3.36.4-1) unstable; urgency=medium
+
+ * New upstream release
+ * debian/control.in: Recommends accountsservice, this is used by gis
+ * debian/control.in: Bump malcontent to Recommends
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 06 Jul 2020 14:38:00 +0200
+
+gnome-initial-setup (3.36.3-2) unstable; urgency=medium
+
+ * debian/control.in: Bump Standards-Version to 4.5.0 (no further changes)
+ * Enable malcontent on supported architectures
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 06 Jul 2020 12:11:29 +0200
+
+gnome-initial-setup (3.36.3-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Thu, 18 Jun 2020 21:50:34 +0200
+
+gnome-initial-setup (3.36.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@debian.org> Tue, 28 Apr 2020 12:01:34 +0200
+
+gnome-initial-setup (3.36.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Will Thompson <wjt@endlessm.com> Thu, 02 Apr 2020 20:26:56 +0100
+
+gnome-initial-setup (3.36.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Will Thompson <wjt@endlessm.com> Tue, 10 Mar 2020 16:46:31 +0000
+
+gnome-initial-setup (3.35.91-1) experimental; urgency=medium
+
+ [ Will Thompson ]
+ * New upstream release
+ * debian/control:
+ - build without parental controls, it has depends not yet in Debian
+ - depend on GLib >= 2.63.1
+ * debian/rules:
+ - drop obsolete build option
+ - build without parental controls
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Tue, 18 Feb 2020 11:24:03 +0100
+
+gnome-initial-setup (3.35.90-1) experimental; urgency=medium
+
+ * New upstream release
+ * debian/control:
+ - updates the cheese requirement, removed libpackagekit-glib2-dev
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Thu, 06 Feb 2020 11:37:30 +0100
+
+gnome-initial-setup (3.34.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Jeremy Bicha <jbicha@debian.org> Sun, 06 Oct 2019 07:20:33 -0400
+
+gnome-initial-setup (3.34.0-2) unstable; urgency=medium
+
+ * Release to unstable
+
+ -- Jeremy Bicha <jbicha@debian.org> Mon, 30 Sep 2019 20:48:57 -0400
+
+gnome-initial-setup (3.34.0-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Thu, 12 Sep 2019 16:01:08 +0200
+
+gnome-initial-setup (3.33.91-1) experimental; urgency=medium
+
+ * New upstream release
+ - systemd user instance support
+ - use a11y menu in initial-setup session
+ - Make the page fit narrow screens
+ - Account for multi monitor when checking for small screen
+ - Refactor the logo selection
+ - Refactor page headers
+ * debian/control: Build-depend on systemd
+
+ -- Marco Trevisan (Treviño) <marco@ubuntu.com> Wed, 21 Aug 2019 15:51:57 +0200
+
+gnome-initial-setup (3.32.1-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Tue, 09 Apr 2019 10:41:17 +0200
+
+gnome-initial-setup (3.32.0-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Tue, 12 Mar 2019 10:11:00 +0100
+
+gnome-initial-setup (3.31.92-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Wed, 06 Mar 2019 14:43:25 +0100
+
+gnome-initial-setup (3.31.90-1) experimental; urgency=medium
+
+ * New upstream development release
+ * Build-Depend on debhelper-compat 12 and drop debian/compat
+ * Build-Depend on dh-sequence-gnome
+ * Stop overriding libexecdir
+ * debian/rules: Update build flags
+ * Bump Standards-Version to 4.3.0
+
+ -- Jeremy Bicha <jbicha@debian.org> Thu, 07 Feb 2019 20:25:00 -0500
+
+gnome-initial-setup (3.30.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Bump Standards-Version to 4.2.1
+ * Release to unstable
+
+ -- Jeremy Bicha <jbicha@debian.org> Sat, 22 Sep 2018 19:09:38 -0400
+
+gnome-initial-setup (3.29.92-1) experimental; urgency=medium
+
+ * New upstream version
+
+ -- Sebastien Bacher <seb128@ubuntu.com> Wed, 29 Aug 2018 10:50:01 +0200
+
+gnome-initial-setup (3.29.1-1) experimental; urgency=medium
+
+ * New upstream release
+ * d/p/welcome-screen.patch: Drop, this is already upstream
+ * d/p/use-Debian-icon-on-Debian.patch: Drop, this is already upstream
+ * d/p/use-Ubuntu-icon-on-Ubuntu.patch: Drop, this is already upstream
+ * Standards-Version: 4.1.5 (no changes required)
+ * Set Rules-Requires-Root to no
+ * Build with meson
+
+ -- Andrea Azzarone <andrea.azzarone@canonical.com> Wed, 01 Aug 2018 16:09:43 +0200
+
+gnome-initial-setup (3.28.0-2) unstable; urgency=medium
+
+ * Add welcome-screen.patch from Fedora to still show Welcome screen if
+ Language page is disabled
+ * Install vendor.conf on Ubuntu to skip the language settings there
+ since they don't currently work with Ubuntu's language packs
+ * Cherry-pick use-Ubuntu-icon-on-Ubuntu.patch
+
+ -- Jeremy Bicha <jbicha@debian.org> Tue, 20 Mar 2018 23:09:30 -0400
+
+gnome-initial-setup (3.28.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Cherry-pick use-Debian-icon-on-Debian.patch:
+ - Use the Debian logo instead of GNOME logo on the Welcome screen
+ * Depend on desktop-base on Debian for that feature
+
+ -- Jeremy Bicha <jbicha@debian.org> Tue, 20 Mar 2018 19:29:29 -0400
+
+gnome-initial-setup (3.27.90-2) unstable; urgency=medium
+
+ * Release to unstable
+
+ -- Jeremy Bicha <jbicha@debian.org> Sat, 10 Mar 2018 20:59:32 -0500
+
+gnome-initial-setup (3.27.90-1) experimental; urgency=medium
+
+ * New upstream development release
+ * Update Vcs fields for migration to https://salsa.debian.org/
+
+ -- Jeremy Bicha <jbicha@debian.org> Tue, 13 Feb 2018 13:55:27 -0500
+
+gnome-initial-setup (3.26.0-2) unstable; urgency=medium
+
+ * Lower dependency on gdm3 to Suggests.
+ * Update Vcs fields for conversion to git
+ * Add debian/gbp.conf
+ * Bump Standards-Version to 4.1.2
+ * Bump debhelper compat to 11
+ * Disable the Software Sources page since there is no obvious easy way
+ to change this setting later
+
+ -- Jeremy Bicha <jbicha@debian.org> Mon, 25 Dec 2017 09:22:53 -0500
+
+gnome-initial-setup (3.26.0-1) unstable; urgency=medium
+
+ * New upstream translations release
+
+ -- Jeremy Bicha <jbicha@debian.org> Wed, 13 Sep 2017 21:22:37 -0400
+
+gnome-initial-setup (3.25.92-1) unstable; urgency=medium
+
+ * New upstream translations release (Closes: #862675)
+
+ -- Jeremy Bicha <jbicha@debian.org> Mon, 04 Sep 2017 20:14:08 -0400
+
+gnome-initial-setup (3.25.4-1) unstable; urgency=medium
+
+ * New upstream release
+ * Drop all patches, applied in new release
+ * debian/links:
+ + Symlink the gdm greeter .desktop to /usr/share/applications
+ so that "Initial Setup" has a proper window title
+ * Bump Standards-Version to 4.1.0
+
+ -- Jeremy Bicha <jbicha@debian.org> Wed, 30 Aug 2017 12:11:56 -0400
+
+gnome-initial-setup (3.24.2-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #869942)
+ - Adapt gnome-session file for gnome-settings-daemon 3.24
+ * debian/control.in:
+ - Update NetworkManager related Build-Depends
+ - Add explicit dependency on gnome-settings-daemon >= 3.24
+ * Add adapt-to-gsd325.patch:
+ - Don't require the orientation or xrandr plugins that will
+ be dropped in gnome-settings-daemon 3.26 to smooth that
+ transition
+
+ -- Jeremy Bicha <jbicha@ubuntu.com> Sun, 06 Aug 2017 17:41:28 -0400
+
+gnome-initial-setup (3.22.1-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Laurent Bigonville <bigon@debian.org> Tue, 06 Dec 2016 18:05:21 +0100
+
+gnome-initial-setup (3.22.0-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Bump debhelper compat to 10 (automatic autoreconf).
+ * Set libexecdir to non-multiarch dir, following current practice.
+ * Update Build-Depends as per configure.ac.
+ * Explicitly enable the software sources page.
+ * Refresh polkit-allow-NM.patch.
+ * Avoid using full path to deluser in postrm script to quieten lintian.
+ * Tweak copyright file to add some text to the public-domain block.
+
+ -- Jordi Mallach <jordi@debian.org> Sat, 24 Sep 2016 01:59:12 +0200
+
+gnome-initial-setup (3.20.1-1) unstable; urgency=low
+
+ [ Javier Martinez ]
+ * Initial release (Closes: #766388)
+
+ [ Sjoerd Simons ]
+ * debian/patches/pollkit-allow-NM.patch:
+ - Added. Allow the gnome-initial-setup user to control the network
+
+ [ Jordi Mallach ]
+ * New upstream release.
+ * Update Build-Depends as per configure.ac.
+ * Add missing GPL-2+ license to copyright.
+ * Add missing ${shlibs:Depends} substitution variable.
+ * Add dependency on adduser.
+
+ [ Jeremy Bicha ]
+ * New upstream release. Update build-dependencies accordingly.
+ * Use dh
+ * Set Arch to linux-any since it needs gdm to build and run
+ * Set libexecdir
+ * Add to description and d/copyright
+
+ [ Jordi Mallach ]
+ * Add a pkla rules file for compat with policykit-1 < 0.106.
+
+ -- Jordi Mallach <jordi@debian.org> Wed, 03 Aug 2016 12:22:21 +0200
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..07813db
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,72 @@
+# This file is autogenerated. DO NOT EDIT!
+#
+# Modifications should be made to debian/control.in instead.
+# This file is regenerated automatically in the clean target.
+Source: gnome-initial-setup
+Section: gnome
+Priority: optional
+Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
+Uploaders: Jeremy Bicha <jbicha@ubuntu.com>
+Build-Depends: debhelper-compat (= 13),
+ dh-sequence-gnome,
+ gsettings-desktop-schemas-dev (>= 3.37.1),
+ itstool,
+ libaccountsservice-dev,
+ libadwaita-1-dev (>= 1.2~alpha),
+ libfontconfig-dev,
+ libgdm-dev (>= 3.8.3),
+ libgeoclue-2-dev (>= 2.3.1),
+ libgeocode-glib-dev,
+ libglib2.0-dev (>= 2.63.1),
+ libgnome-desktop-4-dev,
+ libgoa-1.0-dev (>= 3.45.1),
+ libgoa-backend-1.0-dev (>= 3.45.1),
+ libgtk-4-dev,
+ libgweather-4-dev (>= 4.1),
+ libibus-1.0-dev (>= 1.5.2),
+ libjson-glib-dev,
+ libkrb5-dev,
+ libmalcontent-0-dev [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x hppa hurd-i386 ppc64 riscv64],
+ libmalcontent-ui-dev [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x hppa hurd-i386 ppc64 riscv64],
+ libnm-dev (>= 1.2),
+ libnma-gtk4-dev (>= 1.0),
+ libpango1.0-dev (>= 1.32.5),
+ libpolkit-gobject-1-dev (>= 0.103),
+ libpwquality-dev,
+ librest-dev (>= 0.9.1),
+ libsecret-1-dev (>= 0.18.8),
+ libsystemd-dev [linux-any],
+ libwebkitgtk-6.0-dev,
+ libxml2-utils,
+ meson (>= 0.50.0),
+ systemd ( >= 242),
+Rules-Requires-Root: no
+Standards-Version: 4.6.1
+Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-initial-setup
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-initial-setup.git
+Homepage: https://git.gnome.org/browse/gnome-initial-setup/
+
+Package: gnome-initial-setup
+Architecture: linux-any
+Depends: ${shlibs:Depends},
+ pkexec (>= 0.103),
+ polkitd (>= 0.103),
+ adduser,
+ gnome-settings-daemon (>= 3.24),
+ ${logo:Depends},
+ ${misc:Depends}
+Recommends: accountsservice,
+ geoclue-2.0 (>= 2.3.1),
+ gnome-keyring,
+ ${malcontent:Recommends}
+Suggests: gdm3,
+Description: Initial GNOME system setup helper
+ After acquiring or installing a new system there are a few essential things
+ to set up before use. GNOME Initial Setup aims to provide a simple, easy,
+ and safe way to prepare a new system.
+ .
+ GNOME Initial Setup runs the first time you log in to the GNOME desktop
+ and lets you easily configure your language, keyboard layout, online accounts
+ integration, and more.
+ .
+ If you want to configure these things at any other time, run the Settings app.
diff --git a/debian/control.in b/debian/control.in
new file mode 100644
index 0000000..1169aa5
--- /dev/null
+++ b/debian/control.in
@@ -0,0 +1,68 @@
+Source: gnome-initial-setup
+Section: gnome
+Priority: optional
+Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
+Uploaders: @GNOME_TEAM@
+Build-Depends: debhelper-compat (= 13),
+ dh-sequence-gnome,
+ gsettings-desktop-schemas-dev (>= 3.37.1),
+ itstool,
+ libaccountsservice-dev,
+ libadwaita-1-dev (>= 1.2~alpha),
+ libfontconfig-dev,
+ libgdm-dev (>= 3.8.3),
+ libgeoclue-2-dev (>= 2.3.1),
+ libgeocode-glib-dev,
+ libglib2.0-dev (>= 2.63.1),
+ libgnome-desktop-4-dev,
+ libgoa-1.0-dev (>= 3.45.1),
+ libgoa-backend-1.0-dev (>= 3.45.1),
+ libgtk-4-dev,
+ libgweather-4-dev (>= 4.1),
+ libibus-1.0-dev (>= 1.5.2),
+ libjson-glib-dev,
+ libkrb5-dev,
+ libmalcontent-0-dev [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x hppa hurd-i386 ppc64 riscv64],
+ libmalcontent-ui-dev [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x hppa hurd-i386 ppc64 riscv64],
+ libnm-dev (>= 1.2),
+ libnma-gtk4-dev (>= 1.0),
+ libpango1.0-dev (>= 1.32.5),
+ libpolkit-gobject-1-dev (>= 0.103),
+ libpwquality-dev,
+ librest-dev (>= 0.9.1),
+ libsecret-1-dev (>= 0.18.8),
+ libsystemd-dev [linux-any],
+ libwebkitgtk-6.0-dev,
+ libxml2-utils,
+ meson (>= 0.50.0),
+ systemd ( >= 242),
+Rules-Requires-Root: no
+Standards-Version: 4.6.1
+Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-initial-setup
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-initial-setup.git
+Homepage: https://git.gnome.org/browse/gnome-initial-setup/
+
+Package: gnome-initial-setup
+Architecture: linux-any
+Depends: ${shlibs:Depends},
+ pkexec (>= 0.103),
+ polkitd (>= 0.103),
+ adduser,
+ gnome-settings-daemon (>= 3.24),
+ ${logo:Depends},
+ ${misc:Depends}
+Recommends: accountsservice,
+ geoclue-2.0 (>= 2.3.1),
+ gnome-keyring,
+ ${malcontent:Recommends}
+Suggests: gdm3,
+Description: Initial GNOME system setup helper
+ After acquiring or installing a new system there are a few essential things
+ to set up before use. GNOME Initial Setup aims to provide a simple, easy,
+ and safe way to prepare a new system.
+ .
+ GNOME Initial Setup runs the first time you log in to the GNOME desktop
+ and lets you easily configure your language, keyboard layout, online accounts
+ integration, and more.
+ .
+ If you want to configure these things at any other time, run the Settings app.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..0257e00
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,39 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: gnome-initial-setup
+Source: https://download.gnome.org/sources/gnome-initial-setup/
+
+Files: *
+Copyright: 2009-2016 Red Hat
+ 2012-2016 Mattias Clasen <mclasen@redhat.com>
+ 2012-2015 Jasper St. Pierre <jstpierre@mecheye.net>
+ 2012, 2015 Ray Strode <rstrode@redhat.com>
+ 2011-2013 Giovanni Campagna <scampa.giovanni@gmail.com>
+ 2010 Intel, Inc
+ 2009 Canonical Ltd
+ 2000-2001 Ximian, Inc
+ William Jon McCann <jmccann@redhat.com>
+ Jakub Steiner <jimmac@gmail.com>
+ Copyright © 2020 Endless Mobile, Inc.
+License: GPL-2+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'.
+
+Files: gnome-initial-setup/pages/timezone/backward
+Copyright: None
+ Copied from tzdata: https://www.iana.org/time-zones
+License: public-domain
+ This file is in the public domain, so clarified as of
+ 2009-05-17 by Arthur David Olson.
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..a1122b9
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1,3 @@
+NEWS
+README.md
+
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..df9828f
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,17 @@
+[DEFAULT]
+pristine-tar = True
+debian-branch = debian/master
+upstream-branch = upstream/latest
+
+[buildpackage]
+sign-tags = True
+
+[dch]
+multimaint-merge = True
+
+[import-orig]
+postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
+upstream-vcs-tag = %(version%~%.)s
+
+[pq]
+patch-numbers = False
diff --git a/debian/gnome-initial-setup.maintscript b/debian/gnome-initial-setup.maintscript
new file mode 100644
index 0000000..262ad47
--- /dev/null
+++ b/debian/gnome-initial-setup.maintscript
@@ -0,0 +1 @@
+rm_conffile /etc/xdg/autostart/gnome-welcome-tour.desktop 40.1-2~
diff --git a/debian/gnome-initial-setup.pkla b/debian/gnome-initial-setup.pkla
new file mode 100644
index 0000000..f688935
--- /dev/null
+++ b/debian/gnome-initial-setup.pkla
@@ -0,0 +1,6 @@
+[Allow the gnome-initial-setup user to mount disks, set the locale, keyboard, date/time, control the network and create users without prompting]
+Identity=unix-user:gnome-initial-setup
+Action=org.freedesktop.udisks2.filesystem-mount-system;org.freedesktop.hostname1.*;org.freedesktop.NetworkManager.*;org.freedesktop.locale1.*;org.freedesktop.accounts.*;org.freedesktop.timedate1.*;org.freedesktop.realmd.*;org.freedesktop.RealtimeKit1.*
+ResultAny=no
+ResultInactive=no
+ResultActive=yes
diff --git a/debian/install b/debian/install
new file mode 100644
index 0000000..3740d69
--- /dev/null
+++ b/debian/install
@@ -0,0 +1 @@
+debian/gnome-initial-setup.pkla /var/lib/polkit-1/localauthority/10-vendor.d/
diff --git a/debian/patches/Add-StartupWMClass-to-.desktop-file.patch b/debian/patches/Add-StartupWMClass-to-.desktop-file.patch
new file mode 100644
index 0000000..c09abb8
--- /dev/null
+++ b/debian/patches/Add-StartupWMClass-to-.desktop-file.patch
@@ -0,0 +1,29 @@
+From: Will Thompson <wjt@endlessos.org>
+Date: Fri, 3 Mar 2023 11:04:52 +0000
+Subject: Add StartupWMClass to .desktop file
+
+Initial Setup's application ID is org.gnome.InitialSetup. This does not
+match the desktop file name. It is too late in the current development
+cycle to rename the desktop file to match.
+
+Instead, allow the shell to associate the initial setup window with its
+desktop file by specifying StartupWMClass.
+
+See https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/179 and
+https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/merge_requests/186
+for more background.
+
+Origin: upstream, 44~rc, commit:87e81b9c80dfb05f43fe62bb5dad62f707f3b824
+---
+ data/gnome-initial-setup.desktop.in.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/data/gnome-initial-setup.desktop.in.in b/data/gnome-initial-setup.desktop.in.in
+index e7aa666..c15fd6e 100644
+--- a/data/gnome-initial-setup.desktop.in.in
++++ b/data/gnome-initial-setup.desktop.in.in
+@@ -10,3 +10,4 @@ Categories=GNOME;GTK;System;
+ OnlyShowIn=GNOME;
+ NoDisplay=true
+ X-GNOME-HiddenUnderSystemd=@systemd_hidden@
++StartupWMClass=org.gnome.InitialSetup
diff --git a/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch b/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch
new file mode 100644
index 0000000..a9e150b
--- /dev/null
+++ b/debian/patches/Update-for-removal-of-WebKitGTK-sandbox-API.patch
@@ -0,0 +1,26 @@
+From: Michael Catanzaro <mcatanzaro@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 --git a/debian/patches/driver-Set-a-non-trivial-window-title.patch b/debian/patches/driver-Set-a-non-trivial-window-title.patch
new file mode 100644
index 0000000..586d0aa
--- /dev/null
+++ b/debian/patches/driver-Set-a-non-trivial-window-title.patch
@@ -0,0 +1,28 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Mon, 6 Mar 2023 23:34:50 +0000
+Subject: driver: Set a non-trivial window title
+
+When running in "existing user" mode (which isn't done upstream, but
+Debian and Ubuntu re-enable it because they don't have GNOME Tour),
+the window title is visible in Alt+[key above Tab] and the Overview.
+It defaults to "gnome-initial-setup", but looks better if we reuse the
+translated name from the .desktop file.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/merge_requests/191
+---
+ gnome-initial-setup/gis-driver.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gnome-initial-setup/gis-driver.c b/gnome-initial-setup/gis-driver.c
+index 1ddf3c6..8459efa 100644
+--- a/gnome-initial-setup/gis-driver.c
++++ b/gnome-initial-setup/gis-driver.c
+@@ -797,6 +797,7 @@ gis_driver_startup (GApplication *app)
+ "application", app,
+ "icon-name", "preferences-system",
+ "deletable", FALSE,
++ "title", _("Initial Setup"),
+ NULL);
+
+ g_signal_connect (driver->main_window,
diff --git a/debian/patches/keyboard-Correctly-update-labels-for-IBus-engines.patch b/debian/patches/keyboard-Correctly-update-labels-for-IBus-engines.patch
new file mode 100644
index 0000000..3019576
--- /dev/null
+++ b/debian/patches/keyboard-Correctly-update-labels-for-IBus-engines.patch
@@ -0,0 +1,189 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Mon, 6 Mar 2023 22:23:28 +0000
+Subject: keyboard: Correctly update labels for IBus engines
+
+After the port from GTK 3 to 4, in general there's an additional level
+of indirection: the children of priv->input_list are GtkListBoxRow
+objects containing the widget whose user-data is the InputWidget. This
+means we didn't find the InputWidget and therefore couldn't update its
+display name.
+
+Unfortunately, there is one exception to the rule that every child
+of a GtkListBox is a GtkListBoxRow: the placeholder object, in our
+case priv->no_results, is not wrapped in a GtkListBoxRow (see also
+GNOME/gtk#4523). This means that walking the GtkWidget tree seems rather
+fragile: it's difficult to tell whether each child of the GtkListBox
+is a GtkListBoxRow, or the placeholder object priv->no_results, or
+some third type of object that could be added by a future GTK version
+(particularly since there is no particular type-safety here).
+
+Instead of walking the widget tree, maintain our own parallel list of
+known keyboard layouts and other input methods. For this list, we can
+safely assert that every item is something that we put there, with the
+invariant that it's a GtkBox with an InputWidget attached.
+
+This means that we can reliably find the InputWidget, and update its
+associated display name.
+
+Fixes: ad500afc "keyboard: Port to GTK4"
+Bug: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/180
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Bug-Debian: https://bugs.debian.org/1032382
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/180
+---
+ .../pages/keyboard/cc-input-chooser.c | 56 ++++++++++++----------
+ 1 file changed, 31 insertions(+), 25 deletions(-)
+
+diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+index 2dd58e9..ae8f2d7 100644
+--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
++++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+@@ -50,6 +50,7 @@ struct _CcInputChooserPrivate
+ {
+ GtkWidget *filter_entry;
+ GtkWidget *input_list;
++ GPtrArray *input_widget_boxes;
+ GHashTable *inputs;
+
+ GtkWidget *no_results;
+@@ -96,6 +97,11 @@ typedef struct {
+ gboolean is_extra;
+ } InputWidget;
+
++/*
++ * Invariant: for each box in priv->input_widget_boxes,
++ * get_input_widget (row) is non-null and
++ * get_input_widget (row)->box == box
++ */
+ static InputWidget *
+ get_input_widget (GtkWidget *widget)
+ {
+@@ -258,21 +264,20 @@ static void
+ sync_all_checkmarks (CcInputChooser *chooser)
+ {
+ CcInputChooserPrivate *priv;
+- GtkWidget *row;
+ gboolean invalidate = FALSE;
++ gsize i;
+
+ priv = cc_input_chooser_get_instance_private (chooser);
+- row = gtk_widget_get_first_child (priv->input_list);
+- while (row) {
++
++ for (i = 0; i < priv->input_widget_boxes->len; i++) {
+ InputWidget *widget;
+ GtkWidget *child;
+ gboolean should_be_visible;
+
+- child = gtk_list_box_row_get_child (GTK_LIST_BOX_ROW (row));
++ child = g_ptr_array_index (priv->input_widget_boxes, i);
+ widget = get_input_widget (child);
+-
+- if (widget == NULL)
+- break;
++ g_assert (widget != NULL);
++ g_assert (widget->box == child);
+
+ if (priv->id == NULL || priv->type == NULL)
+ should_be_visible = FALSE;
+@@ -287,8 +292,6 @@ sync_all_checkmarks (CcInputChooser *chooser)
+ widget->is_extra = FALSE;
+ invalidate = TRUE;
+ }
+-
+- row = gtk_widget_get_next_sibling (row);
+ }
+
+ if (invalidate) {
+@@ -335,28 +338,26 @@ static void
+ choose_non_extras (CcInputChooser *chooser)
+ {
+ CcInputChooserPrivate *priv;
+- GtkWidget *row;
+ guint count = 0;
++ gsize i;
+
+ priv = cc_input_chooser_get_instance_private (chooser);
+- row = gtk_widget_get_first_child (priv->input_list);
+- while (row) {
++
++ for (i = 0; i < priv->input_widget_boxes->len; i++) {
+ InputWidget *widget;
+ GtkWidget *child;
+
+ if (++count > MIN_ROWS)
+ break;
+
+- child = gtk_list_box_row_get_child (GTK_LIST_BOX_ROW (row));
++ child = g_ptr_array_index (priv->input_widget_boxes, i);
+ widget = get_input_widget (child);
+- if (widget == NULL)
+- break;
++ g_assert (widget != NULL);
++ g_assert (widget->box == child);
+
+ g_debug ("Picking %s (%s:%s) as non-extra",
+ widget->name, widget->type, widget->id);
+ widget->is_extra = FALSE;
+-
+- row = gtk_widget_get_next_sibling (row);
+ }
+
+ /* Changing is_extra above affects the ordering and the visibility
+@@ -391,6 +392,7 @@ add_rows_to_list (CcInputChooser *chooser,
+ g_hash_table_add (priv->inputs, key);
+
+ widget = input_widget_new (chooser, type, id, TRUE);
++ g_ptr_array_add (priv->input_widget_boxes, g_object_ref_sink (widget));
+ gtk_list_box_append (GTK_LIST_BOX (priv->input_list), widget);
+ }
+ }
+@@ -588,21 +590,21 @@ update_ibus_active_sources (CcInputChooser *chooser)
+ {
+ CcInputChooserPrivate *priv;
+ IBusEngineDesc *engine_desc;
+- GtkWidget *child;
+ const gchar *type;
+ const gchar *id;
+ gchar *name;
++ gsize i;
+
+ priv = cc_input_chooser_get_instance_private (chooser);
+- child = gtk_widget_get_first_child (priv->input_list);
+- while (child) {
+- InputWidget *row;
+
+- row = get_input_widget (child);
+- child = gtk_widget_get_next_sibling (child);
++ for (i = 0; i < priv->input_widget_boxes->len; i++) {
++ GtkWidget *child;
++ InputWidget *row;
+
+- if (row == NULL)
+- continue;
++ child = g_ptr_array_index (priv->input_widget_boxes, i);
++ row = get_input_widget (child);
++ g_assert (row != NULL);
++ g_assert (row->box == child);
+
+ type = row->type;
+ id = row->id;
+@@ -774,6 +776,7 @@ cc_input_chooser_finalize (GObject *object)
+
+ g_clear_object (&priv->xkb_info);
+ g_hash_table_unref (priv->inputs);
++ g_clear_pointer (&priv->input_widget_boxes, g_ptr_array_unref);
+ #ifdef HAVE_IBUS
+ g_clear_object (&priv->ibus);
+ if (priv->ibus_cancellable)
+@@ -844,7 +847,10 @@ cc_input_chooser_class_init (CcInputChooserClass *klass)
+ static void
+ cc_input_chooser_init (CcInputChooser *chooser)
+ {
++ CcInputChooserPrivate *priv = cc_input_chooser_get_instance_private (chooser);
++
+ gtk_widget_init_template (GTK_WIDGET (chooser));
++ priv->input_widget_boxes = g_ptr_array_new_with_free_func (g_object_unref);
+ }
+
+ void
diff --git a/debian/patches/keyboard-Resort-refilter-list-when-picking-shortlist.patch b/debian/patches/keyboard-Resort-refilter-list-when-picking-shortlist.patch
new file mode 100644
index 0000000..0378ab0
--- /dev/null
+++ b/debian/patches/keyboard-Resort-refilter-list-when-picking-shortlist.patch
@@ -0,0 +1,96 @@
+From: Will Thompson <wjt@endlessos.org>
+Date: Fri, 3 Mar 2023 13:17:18 +0000
+Subject: keyboard: Resort & refilter list when picking shortlist
+
+Each row of the keyboard layout/input method list has a flag for whether
+it is an "extra" layout, hidden by default, or not. All rows are added
+with the is_extra flag set to TRUE; later, they can be marked as
+non-extra in a few ways:
+
+- The currently-selected layout is (indirectly) marked as non-extra
+- Selecting a layout marks it as non-extra
+- 5 semi-arbitrary layouts are marked as non-extra
+
+To make the list work, the GtkListBox has sort and filter functions set:
+
+- The sort function sorts extra layouts after non-extra layouts
+- The filter function hides extra layouts, unless the user is searching
+ or has clicked the vertical ellipsis to see all layouts
+
+But previously, the sort and filter of the list were not always
+invalidated when one or more layouts' is_extra flags were changed. As a
+result, the list always showed no layouts by default, just the vertical
+ellipsis to see all layouts.
+
+Fix this by invalidating both sort and filter when a layout is marked
+non-extra.
+
+Bug: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/165
+Origin: upstream, 44.rc, commit:151688f670e8c6f5ecc8a7bac686ddcc815cdf11
+---
+ .../pages/keyboard/cc-input-chooser.c | 22 +++++++++++++++++++---
+ 1 file changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+index efba249..2dd58e9 100644
+--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
++++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+@@ -259,6 +259,7 @@ sync_all_checkmarks (CcInputChooser *chooser)
+ {
+ CcInputChooserPrivate *priv;
+ GtkWidget *row;
++ gboolean invalidate = FALSE;
+
+ priv = cc_input_chooser_get_instance_private (chooser);
+ row = gtk_widget_get_first_child (priv->input_list);
+@@ -271,7 +272,7 @@ sync_all_checkmarks (CcInputChooser *chooser)
+ widget = get_input_widget (child);
+
+ if (widget == NULL)
+- return;
++ break;
+
+ if (priv->id == NULL || priv->type == NULL)
+ should_be_visible = FALSE;
+@@ -280,13 +281,20 @@ sync_all_checkmarks (CcInputChooser *chooser)
+ g_strcmp0 (widget->type, priv->type) == 0;
+ gtk_widget_set_opacity (widget->checkmark, should_be_visible ? 1.0 : 0.0);
+
+- if (widget->is_extra && should_be_visible)
++ if (widget->is_extra && should_be_visible) {
++ g_debug ("Marking selected layout %s (%s:%s) as non-extra",
++ widget->name, widget->type, widget->id);
+ widget->is_extra = FALSE;
++ invalidate = TRUE;
++ }
+
+ row = gtk_widget_get_next_sibling (row);
+ }
+
+- gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->input_list));
++ if (invalidate) {
++ gtk_list_box_invalidate_sort (GTK_LIST_BOX (priv->input_list));
++ gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->input_list));
++ }
+ }
+
+ static GtkWidget *
+@@ -344,10 +352,18 @@ choose_non_extras (CcInputChooser *chooser)
+ if (widget == NULL)
+ break;
+
++ g_debug ("Picking %s (%s:%s) as non-extra",
++ widget->name, widget->type, widget->id);
+ widget->is_extra = FALSE;
+
+ row = gtk_widget_get_next_sibling (row);
+ }
++
++ /* Changing is_extra above affects the ordering and the visibility
++ * of the newly non-extra rows.
++ */
++ gtk_list_box_invalidate_sort (GTK_LIST_BOX (priv->input_list));
++ gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->input_list));
+ }
+
+ static void
diff --git a/debian/patches/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch b/debian/patches/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch
new file mode 100644
index 0000000..ba8d296
--- /dev/null
+++ b/debian/patches/keyboard-Update-filter-and-sort-when-the-display-name-cha.patch
@@ -0,0 +1,46 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Sun, 5 Mar 2023 16:16:12 +0000
+Subject: keyboard: Update filter and sort when the display name changes
+
+The display name in `InputWidget.name` can affect `sort_inputs()`
+and `input_visible()`, so we should update it when we replace the
+placeholder display name with the real one, and tell GTK to update its
+state accordingly.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Bug-Debian: https://bugs.debian.org/1032382
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/180
+---
+ gnome-initial-setup/pages/keyboard/cc-input-chooser.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+index ae8f2d7..b851ec6 100644
+--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
++++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+@@ -589,6 +589,7 @@ static void
+ update_ibus_active_sources (CcInputChooser *chooser)
+ {
+ CcInputChooserPrivate *priv;
++ gboolean invalidate = FALSE;
+ IBusEngineDesc *engine_desc;
+ const gchar *type;
+ const gchar *id;
+@@ -615,9 +616,16 @@ update_ibus_active_sources (CcInputChooser *chooser)
+ if (engine_desc) {
+ name = engine_get_display_name (engine_desc);
+ gtk_label_set_text (GTK_LABEL (row->label), name);
+- g_free (name);
++ g_clear_pointer (&row->name, g_free);
++ row->name = g_steal_pointer (&name);
++ invalidate = TRUE;
+ }
+ }
++
++ if (invalidate) {
++ gtk_list_box_invalidate_sort (GTK_LIST_BOX (priv->input_list));
++ gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->input_list));
++ }
+ }
+
+ static void
diff --git a/debian/patches/privacy-Move-subtitles-to-separate-labels.patch b/debian/patches/privacy-Move-subtitles-to-separate-labels.patch
new file mode 100644
index 0000000..275aa23
--- /dev/null
+++ b/debian/patches/privacy-Move-subtitles-to-separate-labels.patch
@@ -0,0 +1,121 @@
+From: Georges Basile Stavracas Neto <georges.stavracas@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 (&lt;a href='https://location.services.mozilla.com/privacy'&gt;privacy policy&lt;/a&gt;).</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 (&lt;a href='https://location.services.mozilla.com/privacy'&gt;privacy policy&lt;/a&gt;).</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 --git a/debian/patches/reenable-existing-user-mode.patch b/debian/patches/reenable-existing-user-mode.patch
new file mode 100644
index 0000000..d149d39
--- /dev/null
+++ b/debian/patches/reenable-existing-user-mode.patch
@@ -0,0 +1,36 @@
+From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+Date: Thu, 17 Feb 2022 08:17:17 -0500
+Subject: Re-enable existing users mode since gnome-tour isn't in Debian
+
+This reverts commit 43f1870c "Disable existing-user mode".
+
+Forwarded: not-needed
+---
+ gnome-initial-setup/gnome-initial-setup.c | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c
+index 113ded3..4d14fea 100644
+--- a/gnome-initial-setup/gnome-initial-setup.c
++++ b/gnome-initial-setup/gnome-initial-setup.c
+@@ -323,20 +323,6 @@ main (int argc, char *argv[])
+ adw_style_manager_set_color_scheme (adw_style_manager_get_default (),
+ ADW_COLOR_SCHEME_PREFER_LIGHT);
+
+- /* On first login, GNOME Shell offers to run a tour. If we also run Initial
+- * Setup, the two immovable, centred windows will sit atop one another.
+- * Until we have the ability to run Initial Setup in the "kiosk" mode, like
+- * it does in new-user mode, disable Initial Setup for existing users.
+- *
+- * https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/120#note_1019004
+- * https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/12
+- */
+- if (mode == GIS_DRIVER_MODE_EXISTING_USER) {
+- g_message ("Skipping gnome-initial-setup for existing user");
+- gis_ensure_stamp_files (driver);
+- exit (EXIT_SUCCESS);
+- }
+-
+ /* We only do this in existing-user mode, because if gdm launches us
+ * in new-user mode and we just exit, gdm's special g-i-s session
+ * never terminates. */
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..5af2d46
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,8 @@
+Add-StartupWMClass-to-.desktop-file.patch
+keyboard-Resort-refilter-list-when-picking-shortlist.patch
+keyboard-Correctly-update-labels-for-IBus-engines.patch
+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 --git a/debian/postinst b/debian/postinst
new file mode 100644
index 0000000..1b15638
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -eu
+
+# creating gnome-initial-setup user if it isn't already there
+if ! getent passwd gnome-initial-setup >/dev/null; then
+ adduser --system --force-badname --quiet \
+ --home /run/gnome-initial-setup/ --no-create-home \
+ --shell /bin/false \
+ gnome-initial-setup
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/postrm b/debian/postrm
new file mode 100644
index 0000000..fc83984
--- /dev/null
+++ b/debian/postrm
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "purge" ] ; then
+ if getent passwd gnome-initial-setup >/dev/null; then
+ if which deluser >/dev/null 2>&1; then
+ deluser --system gnome-initial-setup || echo "Could not remove gnome-initial-setup user."
+ fi
+ fi
+fi
+#DEBHELPER#
+exit 0
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..939d03e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,39 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs
+
+%:
+ dh $@
+
+# malcontent it not in Ubuntu main yet & is only built on some arches
+ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
+PARENTAL_CONTROL := -Dparental_controls=disabled
+else
+ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x hppa hurd-i386 ppc64 riscv64))
+PARENTAL_CONTROL := -Dparental_controls=enabled
+else
+PARENTAL_CONTROL := -Dparental_controls=disabled
+endif
+endif
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ -Dauto_features=enabled \
+ $(PARENTAL_CONTROL)
+
+# Skip language chooser on Ubuntu since it doesn't work there
+ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
+execute_after_dh_install:
+ dh_install debian/vendor.conf /usr/share/gnome-initial-setup/
+endif
+
+# Depend on the appropriate package for the Welcome logo
+# And don't add malcontent Recommends in Ubuntu
+override_dh_gencontrol:
+ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
+ dh_gencontrol -- -Vlogo:Depends='gnome-control-center-data'
+else
+ dh_gencontrol -- -Vlogo:Depends='desktop-base' \
+ -Vmalcontent:Recommends='malcontent [amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x hppa powerpc powerpcspe ppc64]'
+endif
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644
index 0000000..7612fba
--- /dev/null
+++ b/debian/upstream/metadata
@@ -0,0 +1,6 @@
+---
+Bug-Database: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues
+Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/new
+Name: GNOME Initial Setup
+Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-initial-setup
+Repository: https://gitlab.gnome.org/GNOME/gnome-initial-setup.git
diff --git a/debian/vendor.conf b/debian/vendor.conf
new file mode 100644
index 0000000..690909e
--- /dev/null
+++ b/debian/vendor.conf
@@ -0,0 +1,2 @@
+[pages]
+skip=language
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..64675b4
--- /dev/null
+++ b/debian/watch
@@ -0,0 +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@