diff options
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 (<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 --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@ |