diff --git a/1001-Modify-systemd-requires.patch b/1001-Modify-systemd-requires.patch new file mode 100644 index 0000000000000000000000000000000000000000..402cba205b1fc0a31f041d9d7ee92f6e0d2c2fd6 --- /dev/null +++ b/1001-Modify-systemd-requires.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index dcf6bbd..ec3c90d 100644 +--- a/meson.build ++++ b/meson.build +@@ -33,7 +33,7 @@ conf.set('GLIB_VERSION_MAX_ALLOWED', 'GLIB_VERSION_2_64') + + enable_systemd = get_option('systemd') + if enable_systemd +- systemd_dep = dependency('systemd', version: '>= 242', required: false) ++ systemd_dep = dependency('systemd', version: '>= 239', required: false) + assert(systemd_dep.found(), 'Systemd support explicitly required, but systemd not found') + + systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', diff --git a/allow-weak-passwords.patch b/allow-weak-passwords.patch deleted file mode 100644 index c3203c39f73325beb221cf5a5d16ac41e4550700..0000000000000000000000000000000000000000 --- a/allow-weak-passwords.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 985f2a009ddf5179482e7551400cf8065553707e Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Wed, 11 Apr 2018 22:16:54 -0500 -Subject: Revert "Revert "Don't hard-enforce strong passwords"" - -This reverts commit 0c67a9800c7832dd55c046adc372833a96a96cf0. - -This is a requirement for Fedora, but I suspect few distros want to -irritate users right off the bat by dictating which passwords may be -used. ---- - gnome-initial-setup/pages/password/gis-password-page.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gnome-initial-setup/pages/password/gis-password-page.c b/gnome-initial-setup/pages/password/gis-password-page.c -index cf3db9e..731666d 100644 ---- a/gnome-initial-setup/pages/password/gis-password-page.c -+++ b/gnome-initial-setup/pages/password/gis-password-page.c -@@ -59,7 +59,7 @@ page_validate (GisPasswordPage *page) - { - GisPasswordPagePrivate *priv = gis_password_page_get_instance_private (page); - -- return priv->valid_confirm && priv->valid_password; -+ return priv->valid_confirm; - } - - static void --- -cgit v0.12 - diff --git a/download b/download deleted file mode 100644 index 9c15031a7ad6ffe13a66eda597297d8be9d06da8..0000000000000000000000000000000000000000 --- a/download +++ /dev/null @@ -1 +0,0 @@ -80bc7f3bc13bae6e1b5bb2ea373ee4bf gnome-initial-setup-3.28.0.tar.xz diff --git a/gnome-initial-setup-3.28.0-fix-japanese-defaults.patch b/gnome-initial-setup-3.28.0-fix-japanese-defaults.patch deleted file mode 100644 index 71755da3066eaf47e61bf8947e1bef3becc5bf5d..0000000000000000000000000000000000000000 --- a/gnome-initial-setup-3.28.0-fix-japanese-defaults.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -urN gnome-initial-setup-3.28.0.old/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c gnome-initial-setup-3.28.0/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c ---- gnome-initial-setup-3.28.0.old/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c 2020-10-23 09:57:27.493000000 +0100 -+++ gnome-initial-setup-3.28.0/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c 2020-10-23 15:03:34.772000000 +0100 -@@ -37,6 +37,8 @@ - #include "keyboard-resources.h" - #include "cc-input-chooser.h" - -+#include "cc-common-language.h" -+ - #define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.gnome.desktop.input-sources" - #define KEY_CURRENT_INPUT_SOURCE "current" - #define KEY_INPUT_SOURCES "sources" -@@ -281,8 +283,7 @@ - { - const gchar *type; - const gchar *id; -- const gchar * const *locales; -- const gchar *language; -+ gchar *language; - GVariantBuilder builder; - GSettings *input_settings; - -@@ -292,12 +293,12 @@ - add_default_keyboard_layout (proxy, &builder); - - /* add other input sources */ -- locales = g_get_language_names (); -- language = locales[0]; -+ language = cc_common_language_get_current_language (); - if (gnome_get_input_source_from_locale (language, &type, &id)) { - if (!g_str_equal (type, "xkb")) - g_variant_builder_add (&builder, "(ss)", type, id); - } -+ g_free (language); - - g_settings_delay (input_settings); - g_settings_set_value (input_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); -@@ -346,8 +347,12 @@ - } - - static void --load_localed_input (GisKeyboardPage *self) -+preselect_input_source (GisKeyboardPage *self) - { -+ const gchar *type; -+ const gchar *id; -+ gchar *language; -+ - GisKeyboardPagePrivate *priv = gis_keyboard_page_get_instance_private (self); - GSList * sources = get_localed_input (priv->localed); - -@@ -356,11 +361,28 @@ - g_slist_free_full (priv->system_sources, g_free); - priv->system_sources = g_slist_reverse (sources); - -- /* We only pre-select the first system layout. */ -- if (priv->system_sources) -+ /* For languages that use an input method, we will add both -+ * system keyboard layout and the ibus input method. For -+ * languages that use keyboard layout only, we will add only -+ * system keyboard layout. Because the keyboard layout -+ * information from gnome-desktop is not as accurate as system -+ * keyboard layout, if gnome-desktop returns keyboard layout, -+ * we ignore it and use system keyboard layout instead. If -+ * gnome-desktop instead returns an ibus input method, we will -+ * add both system keyboard layout and the ibus input method. */ -+ language = cc_common_language_get_current_language (); -+ -+ if (!priv->system_sources || -+ (gnome_get_input_source_from_locale (language, &type, &id) && g_strcmp0 (type, "xkb") != 0)) { -+ cc_input_chooser_set_input (CC_INPUT_CHOOSER (priv->input_chooser), -+ id, type); -+ } else { - cc_input_chooser_set_input (CC_INPUT_CHOOSER (priv->input_chooser), - (const gchar *) priv->system_sources->data, - "xkb"); -+ } -+ -+ g_free (language); - } - - static void -@@ -395,7 +417,7 @@ - - priv->localed = proxy; - -- load_localed_input (self); -+ preselect_input_source (self); - update_page_complete (self); - } - diff --git a/gnome-initial-setup-3.28.0-fix-legacy-faces-missing-icon.patch b/gnome-initial-setup-3.28.0-fix-legacy-faces-missing-icon.patch deleted file mode 100644 index 485ad7820c92d348cfbbfd378b3793e83cd5eae3..0000000000000000000000000000000000000000 --- a/gnome-initial-setup-3.28.0-fix-legacy-faces-missing-icon.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 55f148cb0e09009bc0bfc2e12b58fa3577bc900c Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Mon, 9 Apr 2018 09:07:32 +0200 -Subject: [PATCH 1/3] account: Use GIO API for face images handling - -Users panel in gnome-control-center switched to GIO API for face images -handling. Let's do the similar changes here also as a preparation for -filtering out legacy face images. - -https://bugzilla.gnome.org/show_bug.cgi?id=795086 ---- - .../pages/account/um-photo-dialog.c | 45 ++++++++++--------- - 1 file changed, 23 insertions(+), 22 deletions(-) - -diff --git a/gnome-initial-setup/pages/account/um-photo-dialog.c b/gnome-initial-setup/pages/account/um-photo-dialog.c -index b63ed78..8b23974 100644 ---- a/gnome-initial-setup/pages/account/um-photo-dialog.c -+++ b/gnome-initial-setup/pages/account/um-photo-dialog.c -@@ -145,15 +145,12 @@ stock_icon_selected (GtkMenuItem *menuitem, - - static GtkWidget * - menu_item_for_filename (UmPhotoDialog *um, -- const char *filename) -+ GFile *file) - { - GtkWidget *image, *menuitem; -- GFile *file; - GIcon *icon; - -- file = g_file_new_for_path (filename); - icon = g_file_icon_new (file); -- g_object_unref (file); - image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_DIALOG); - g_object_unref (icon); - -@@ -161,8 +158,9 @@ menu_item_for_filename (UmPhotoDialog *um, - gtk_container_add (GTK_CONTAINER (menuitem), image); - gtk_widget_show_all (menuitem); - -- g_object_set_data_full (G_OBJECT (menuitem), "filename", -- g_strdup (filename), (GDestroyNotify) g_free); -+ g_object_set_data_full (G_OBJECT (menuitem), -+ "filename", g_file_get_path (file), -+ (GDestroyNotify) g_free); - g_signal_connect (G_OBJECT (menuitem), "activate", - G_CALLBACK (stock_icon_selected), um); - -@@ -176,8 +174,6 @@ setup_photo_popup (UmPhotoDialog *um) - guint x, y; - const gchar * const * dirs; - guint i; -- GDir *dir; -- const char *face; - gboolean none_item_shown; - gboolean added_faces; - -@@ -189,25 +185,32 @@ setup_photo_popup (UmPhotoDialog *um) - - dirs = g_get_system_data_dirs (); - for (i = 0; dirs[i] != NULL; i++) { -- char *path; -+ g_autoptr(GFileEnumerator) enumerator = NULL; -+ g_autoptr(GFile) dir = NULL; -+ g_autofree gchar *path = NULL; -+ gpointer infoptr; - - path = g_build_filename (dirs[i], "pixmaps", "faces", NULL); -- dir = g_dir_open (path, 0, NULL); -- if (dir == NULL) { -- g_free (path); -+ dir = g_file_new_for_path (path); -+ -+ enumerator = g_file_enumerate_children (dir, -+ G_FILE_ATTRIBUTE_STANDARD_NAME "," -+ G_FILE_ATTRIBUTE_STANDARD_TYPE "," -+ G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "," -+ G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET, -+ G_FILE_QUERY_INFO_NONE, -+ NULL, NULL); -+ if (enumerator == NULL) - continue; -- } - -- while ((face = g_dir_read_name (dir)) != NULL) { -- char *filename; -+ while ((infoptr = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL) { -+ g_autoptr (GFileInfo) info = infoptr; -+ g_autoptr (GFile) face_file = NULL; - - added_faces = TRUE; - -- filename = g_build_filename (path, face, NULL); -- menuitem = menu_item_for_filename (um, filename); -- g_free (filename); -- if (menuitem == NULL) -- continue; -+ face_file = g_file_get_child (dir, g_file_info_get_name (info)); -+ menuitem = menu_item_for_filename (um, face_file); - - gtk_menu_attach (GTK_MENU (menu), GTK_WIDGET (menuitem), - x, x + 1, y, y + 1); -@@ -219,8 +222,6 @@ setup_photo_popup (UmPhotoDialog *um) - x = 0; - } - } -- g_dir_close (dir); -- g_free (path); - - if (added_faces) - break; --- -2.33.1 - - -From 0441acd191fb89b40d30484e2966ddd48a196f12 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Mon, 9 Apr 2018 09:10:45 +0200 -Subject: [PATCH 2/3] account: Do not show legacy face images - -Legacy face images should not be shown in avatar chooser, so let's filter -all symlinks to the legacy files out. - -https://bugzilla.gnome.org/show_bug.cgi?id=795086 ---- - gnome-initial-setup/pages/account/um-photo-dialog.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/gnome-initial-setup/pages/account/um-photo-dialog.c b/gnome-initial-setup/pages/account/um-photo-dialog.c -index 8b23974..0769209 100644 ---- a/gnome-initial-setup/pages/account/um-photo-dialog.c -+++ b/gnome-initial-setup/pages/account/um-photo-dialog.c -@@ -170,6 +170,8 @@ menu_item_for_filename (UmPhotoDialog *um, - static void - setup_photo_popup (UmPhotoDialog *um) - { -+ GFileType type; -+ const gchar *target; - GtkWidget *menu, *menuitem, *image; - guint x, y; - const gchar * const * dirs; -@@ -209,6 +211,14 @@ setup_photo_popup (UmPhotoDialog *um) - - added_faces = TRUE; - -+ type = g_file_info_get_file_type (info); -+ if (type != G_FILE_TYPE_REGULAR && type != G_FILE_TYPE_SYMBOLIC_LINK) -+ continue; -+ -+ target = g_file_info_get_symlink_target (info); -+ if (target != NULL && g_str_has_prefix (target , "legacy/")) -+ continue; -+ - face_file = g_file_get_child (dir, g_file_info_get_name (info)); - menuitem = menu_item_for_filename (um, face_file); - --- -2.33.1 - - -From 6a7fcaf82b3dc913313f328501ec085b5bfb5d0f Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Mon, 9 Apr 2018 09:37:46 +0200 -Subject: [PATCH 3/3] account: Make face images bigger - -The new set of face images doesn't contain the same number of images, -so let's change parameters of avatar chooser in the same way as it was -done in gnome-control-center. - -Now we present 72x72 faces in a 4x4 grid. - -https://bugzilla.gnome.org/show_bug.cgi?id=795086 ---- - gnome-initial-setup/pages/account/um-photo-dialog.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/gnome-initial-setup/pages/account/um-photo-dialog.c b/gnome-initial-setup/pages/account/um-photo-dialog.c -index 0769209..ac89d30 100644 ---- a/gnome-initial-setup/pages/account/um-photo-dialog.c -+++ b/gnome-initial-setup/pages/account/um-photo-dialog.c -@@ -37,7 +37,8 @@ - #include "um-photo-dialog.h" - #include "um-utils.h" - --#define ROW_SPAN 6 -+#define ROW_SPAN 5 -+#define AVATAR_PIXEL_SIZE 72 - - struct _UmPhotoDialog { - GtkWidget *photo_popup; -@@ -152,6 +153,7 @@ menu_item_for_filename (UmPhotoDialog *um, - - icon = g_file_icon_new (file); - image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_DIALOG); -+ gtk_image_set_pixel_size (GTK_IMAGE (image), AVATAR_PIXEL_SIZE); - g_object_unref (icon); - - menuitem = gtk_menu_item_new (); --- -2.33.1 - diff --git a/gnome-initial-setup-40.4.tar.xz b/gnome-initial-setup-40.4.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..e9c2222bc095d8421b3bd2e333927339467e5174 Binary files /dev/null and b/gnome-initial-setup-40.4.tar.xz differ diff --git a/gnome-initial-setup.spec b/gnome-initial-setup.spec index e4a1498ab39e64e08295ae3e60cea7451ab3106f..8ff1b3c171b57150590b116699508d87788aaee7 100644 --- a/gnome-initial-setup.spec +++ b/gnome-initial-setup.spec @@ -1,39 +1,31 @@ %define anolis_release .0.1 %global nm_version 1.2 %global nma_version 1.0 -%global glib_required_version 2.53.0 +%global glib_required_version 2.63.1 %global gtk_required_version 3.11.3 %global geoclue_version 2.3.1 +%global tarball_version %%(echo %{version} | tr '~' '.') + Name: gnome-initial-setup -Version: 3.28.0 -Release: 10%{anolis_release}%{?dist}.1 +Version: 40.4 +Release: 3%{anolis_release}%{?dist} Summary: Bootstrapping your OS License: GPLv2+ URL: https://wiki.gnome.org/Design/OS/InitialSetup -Source0: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/%{name}/40/%{name}-%{tarball_version}.tar.xz Source1: vendor.conf -Patch0: honor-firstboot-disabled.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=793501 and https://bugzilla.gnome.org/show_bug.cgi?id=794166 -Patch1: reduce-initial-setup-redundancy.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=754213 -Patch2: allow-weak-passwords.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1655150 -Patch3: quacks-like-fedora.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1703333 -Patch4: gnome-initial-setup-3.28.0-fix-japanese-defaults.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1838088 -Patch5: gnome-initial-setup-3.28.0-fix-legacy-faces-missing-icon.patch + # https://bugzilla.redhat.com/show_bug.cgi?id=2097848 -Patch6: timezones.patch +Patch0: timezones.patch +Patch1001: 1001-Modify-systemd-requires.patch +BuildRequires: meson +BuildRequires: gcc BuildRequires: git -Patch1000: repair-languagepage-logo.patch - BuildRequires: krb5-devel BuildRequires: desktop-file-utils -BuildRequires: intltool BuildRequires: libpwquality-devel BuildRequires: pkgconfig(libnm) >= %{nm_version} BuildRequires: pkgconfig(libnma) >= %{nma_version} @@ -61,9 +53,6 @@ BuildRequires: ibus-devel BuildRequires: rest-devel BuildRequires: polkit-devel BuildRequires: libsecret-devel -# Needed to run autoreconf, for patches that touch autotools bits -BuildRequires: autoconf -BuildRequires: gnome-common # gnome-initial-setup is being run by gdm Requires: gdm @@ -83,26 +72,17 @@ a good setup experience to welcome you to your system, and walks you through configuring it. It is integrated with gdm. %prep -%autosetup -p1 -Sgit +%autosetup -p1 -n %{name}-%{tarball_version} -Sgit %build -# patches touch am files -autoreconf -i -%configure \ - --enable-software-sources \ - --with-vendor-conf-file=%{_datadir}/gnome-initial-setup/vendor.conf -make %{?_smp_mflags} +%meson -Dparental_controls=disabled -Dvendor-conf-file=%{_datadir}/gnome-initial-setup/vendor.conf +%meson_build %install -%make_install -find %{buildroot} -name '*.la' -exec rm -f {} ';' +%meson_install -# Desktop file does not (and probably will not) ever validate, as it uses -# an absolute path /tmp/-style trigger to determine whether to autostart. -# desktop-file-validate %%{buildroot}/%%{_sysconfdir}/xdg/autostart/gnome-welcome-tour.desktop desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/gnome-initial-setup-copy-worker.desktop -desktop-file-validate %{buildroot}%{_datadir}/gdm/greeter/applications/gnome-initial-setup.desktop -desktop-file-validate %{buildroot}%{_datadir}/gdm/greeter/applications/setup-shell.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/gnome-initial-setup.desktop mkdir -p %{buildroot}%{_datadir}/gnome-initial-setup cp %{SOURCE1} %{buildroot}%{_datadir}/gnome-initial-setup/ @@ -114,40 +94,199 @@ useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null || %files -f %{name}.lang %license COPYING -%doc README +%doc README.md %{_libexecdir}/gnome-initial-setup %{_libexecdir}/gnome-initial-setup-copy-worker -%{_libexecdir}/gnome-welcome-tour -%{_sysconfdir}/xdg/autostart/gnome-welcome-tour.desktop %{_sysconfdir}/xdg/autostart/gnome-initial-setup-copy-worker.desktop %{_sysconfdir}/xdg/autostart/gnome-initial-setup-first-login.desktop -%{_datadir}/gdm/greeter/applications/gnome-initial-setup.desktop -%{_datadir}/gdm/greeter/applications/setup-shell.desktop +%{_datadir}/applications/gnome-initial-setup.desktop %{_datadir}/gnome-session/sessions/gnome-initial-setup.session %{_datadir}/gnome-shell/modes/initial-setup.json %{_datadir}/polkit-1/rules.d/20-gnome-initial-setup.rules +%{_userunitdir}/* %dir %{_datadir}/gnome-initial-setup %{_datadir}/gnome-initial-setup/vendor.conf %changelog -* Mon Jul 11 2022 Lilinjie - 3.28.0-10.0.1.1 -- Add repair-languagepage-logo.patch +* Tue Nov 29 2022 Chang Gao - 40.4-3.0.1 +- Modify systemd requirement + +* Tue Jun 21 2022 Michael Catanzaro - 40.4-3 +- BuildRequires: git -* Tue Jun 21 2022 Michael Catanzaro - 3.28.0-10.1 +* Tue Jun 21 2022 Michael Catanzaro - 40.4-2 - Remove timezone boundaries - Related: #2099783 - -* Tue Nov 23 2021 David King - 3.28.0-10 -- Fix missing icon for legacy faces (#1838088) -* Mon Oct 19 2020 David King - 3.28.0-9 -- Fix Japanese language default (#1703333) +* Mon Aug 16 2021 David King - 40.4-1 +- Update to 40.4 (#1991431) + +* Mon Aug 09 2021 Mohan Boddu - 40.1-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed May 05 2021 Kalev Lember - 40.1-1 +- Update to 40.1 + +* Fri Apr 30 2021 Kalev Lember - 40.0-3 +- Drop gnome-tour dep here and move it to gnome-shell instead (#1955179) + +* Thu Apr 15 2021 Mohan Boddu - 40.0-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Mon Mar 22 2021 Kalev Lember - 40.0-1 +- Update to 40.0 + +* Mon Mar 15 2021 Kalev Lember - 40~rc-1 +- Update to 40.rc + +* Wed Feb 17 2021 Kalev Lember - 40~beta-1 +- Update to 40.beta + +* Tue Jan 26 2021 Fedora Release Engineering - 3.38.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 16 2021 Kalev Lember - 3.38.3-1 +- Update to 3.38.3 + +* Wed Nov 25 2020 Kalev Lember - 3.38.2-1 +- Update to 3.38.2 + +* Mon Oct 5 2020 Kalev Lember - 3.38.1-1 +- Update to 3.38.1 + +* Fri Sep 11 2020 Ray Strode - 3.38.0-2 +- Remove weird, unnecessary g_idle_add which are triggering + some weird, not fully understood bug. + Resolves: #1875140 + +* Thu Sep 10 2020 Kalev Lember - 3.38.0-1 +- Update to 3.38.0 + +* Sun Sep 06 2020 Kalev Lember - 3.37.92-1 +- Update to 3.37.92 +- Drop upstreamed honor-firstboot-disabled.patch + +* Thu Aug 27 2020 Kalev Lember - 3.37.91.1-2 +- Require new gnome-tour package (#1873206) + +* Mon Aug 24 2020 Kalev Lember - 3.37.91.1-1 +- Update to 3.37.91.1 +- Rebase honor-firstboot-disabled.patch + +* Mon Aug 17 2020 Kalev Lember - 3.37.91-1 +- Update to 3.37.91 + +* Sat Aug 01 2020 Fedora Release Engineering - 3.37.3-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.37.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 20 2020 Kalev Lember - 3.37.3-1 +- Update to 3.37.3 + +* Tue Jun 23 2020 Adam Williamson - 3.37.1-3 +- Backport MR #89 to fix 'disabled' timezone page setting timezone + +* Mon May 04 2020 Adam Williamson - 3.37.1-2 +- Backport MR #83 to fix preselection of input methods + +* Thu Apr 30 2020 Kalev Lember - 3.37.1-1 +- Update to 3.37.1 + +* Mon Apr 27 2020 Kalev Lember - 3.36.2-1 +- Update to 3.36.2 + +* Sat Mar 28 2020 Kalev Lember - 3.36.1-1 +- Update to 3.36.1 + +* Fri Mar 06 2020 Kalev Lember - 3.36.0-1 +- Update to 3.36.0 + +* Mon Mar 02 2020 Kalev Lember - 3.35.92-1 +- Update to 3.35.92 + +* Mon Feb 17 2020 Kalev Lember - 3.35.91-1 +- Update to 3.35.91 + +* Tue Feb 04 2020 Kalev Lember - 3.35.90-1 +- Update to 3.35.90 + +* Tue Jan 28 2020 Fedora Release Engineering - 3.35.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 16 2020 Kalev Lember - 3.35.3-2 +- Rebuilt for libgnome-desktop soname bump + +* Tue Jan 07 2020 Kalev Lember - 3.35.3-1 +- Update to 3.35.3 + +* Tue Jan 07 2020 Kalev Lember - 3.34.3-1 +- Update to 3.34.3 + +* Mon Oct 07 2019 Kalev Lember - 3.34.1-1 +- Update to 3.34.1 + +* Mon Sep 09 2019 Benjamin Berg - 3.34.0-2 +- Fix g-i-s starting in GDM + Upstream MR https://gitlab.gnome.org/GNOME/gnome-initial-setup/merge_requests/59 +- Resolves: 1750237 + +* Mon Sep 09 2019 Kalev Lember - 3.34.0-1 +- Update to 3.34.0 + +* Wed Sep 04 2019 Benjamin Berg - 3.33.92-2 +- Include upstream patches to fix systemd support + https://gitlab.gnome.org/GNOME/gnome-initial-setup/merge_requests/58 +- Resolves: 1746563 + +* Tue Sep 03 2019 Kalev Lember - 3.33.92-1 +- Update to 3.33.92 + +* Tue Aug 20 2019 Kalev Lember - 3.33.91-1 +- Update to 3.33.91 + +* Thu Jul 25 2019 Fedora Release Engineering - 3.33.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 21 2019 Kalev Lember - 3.33.4-2 +- Rebuilt for libgnome-desktop soname bump + +* Mon Jul 15 2019 Kalev Lember - 3.33.4-1 +- Update to 3.33.4 + +* Mon Jul 08 2019 Kalev Lember - 3.33.2-2 +- Rebuilt for libgweather soname bump + +* Tue May 21 2019 Kalev Lember - 3.33.2-1 +- Update to 3.33.2 + +* Tue Apr 16 2019 Adam Williamson - 3.32.1-2 +- Rebuild with Meson fix for #1699099 + +* Sat Apr 06 2019 Kalev Lember - 3.32.1-1 +- Update to 3.32.1 + +* Thu Apr 04 2019 Ray Strode - 3.32.0-1 +- Update to 3.32.0 + +* Thu Jan 31 2019 Fedora Release Engineering - 3.30.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Sep 22 2018 Kalev Lember - 3.30.0-1 +- Update to 3.30.0 + +* Fri Sep 07 2018 Kalev Lember - 3.29.92-1 +- Update to 3.29.92 +- Drop upstreamed patches reduce-initial-setup-redundancy.patch and + allow-weak-passwords.patch +- Rebase honor-firstboot-disabled.patch -* Mon Feb 18 2019 Ray Strode - 3.28.0-8 -- Ensure vendora logo gets used instead of foot - Resolves: #1655150 +* Fri Jul 13 2018 Fedora Release Engineering - 3.28.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Mon Apr 30 2018 Adam Williamson - 3.28.0-7 - Drop unnecessary pkgconfig(NetworkManager) BuildRequire diff --git a/honor-firstboot-disabled.patch b/honor-firstboot-disabled.patch deleted file mode 100644 index 958d1d987d5e48cdebe1cbab515b8c54efe8891a..0000000000000000000000000000000000000000 --- a/honor-firstboot-disabled.patch +++ /dev/null @@ -1,88 +0,0 @@ -From b2659246f3e2afcbf51a92ee6839775de4e6487a Mon Sep 17 00:00:00 2001 -From: Rui Matos -Date: Mon, 23 Jan 2017 19:42:44 +0100 -Subject: [PATCH] Exit gracefully if we are disabled systemwide - -Sysadmins might want to disable any kind of initial setup for their -users, perhaps because they pre-configure their environments. We -should provide an easy way to do it. - -At least the anaconda installer provides an option to skip any kind -post-install setup tools so, for now we're only adding support for -that but more might be added in the future. - -https://bugzilla.gnome.org/show_bug.cgi?id=777707 ---- - gnome-initial-setup/Makefile.am | 3 ++- - gnome-initial-setup/gnome-initial-setup.c | 34 +++++++++++++++++++++++++++++++ - 2 files changed, 36 insertions(+), 1 deletion(-) - -diff --git a/gnome-initial-setup/Makefile.am b/gnome-initial-setup/Makefile.am -index d275dda..465b598 100644 ---- a/gnome-initial-setup/Makefile.am -+++ b/gnome-initial-setup/Makefile.am -@@ -11,7 +11,8 @@ AM_CPPFLAGS = \ - -DUIDIR="\"$(uidir)\"" \ - -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ - -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \ -- -DDATADIR=\""$(datadir)"\" -+ -DDATADIR=\""$(datadir)"\" \ -+ -DSYSCONFDIR=\""$(sysconfdir)"\" - - libexec_PROGRAMS = gnome-initial-setup gnome-initial-setup-copy-worker - -diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c -index 2ec91b9..10b5f84 100644 ---- a/gnome-initial-setup/gnome-initial-setup.c -+++ b/gnome-initial-setup/gnome-initial-setup.c -@@ -186,6 +186,31 @@ get_mode (void) - return GIS_DRIVER_MODE_NEW_USER; - } - -+static gboolean -+initial_setup_disabled_by_anaconda (void) -+{ -+ GKeyFile *key_file; -+ const gchar *file_name = SYSCONFDIR "/sysconfig/anaconda"; -+ gboolean disabled = FALSE; -+ GError *error = NULL; -+ -+ key_file = g_key_file_new (); -+ if (!g_key_file_load_from_file (key_file, file_name, G_KEY_FILE_NONE, &error)) { -+ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT) && -+ !g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_NOT_FOUND)) { -+ g_warning ("Could not read %s: %s", file_name, error->message); -+ } -+ g_error_free (error); -+ goto out; -+ } -+ -+ disabled = g_key_file_get_boolean (key_file, "General", -+ "post_install_tools_disabled", NULL); -+ out: -+ g_key_file_unref (key_file); -+ return disabled; -+} -+ - int - main (int argc, char *argv[]) - { -@@ -226,6 +251,15 @@ main (int argc, char *argv[]) - - mode = get_mode (); - -+ /* 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. */ -+ if (initial_setup_disabled_by_anaconda () && -+ mode == GIS_DRIVER_MODE_EXISTING_USER) { -+ gis_ensure_stamp_files (); -+ exit (EXIT_SUCCESS); -+ } -+ - /* When we are running as the gnome-initial-setup user we - * dont have a normal user session and need to initialize - * the keyring manually so that we can pass the credentials --- -2.9.3 - diff --git a/quacks-like-fedora.patch b/quacks-like-fedora.patch deleted file mode 100644 index 2d88d8e589ff46b92633f4467a59c63e8cb4ed39..0000000000000000000000000000000000000000 --- a/quacks-like-fedora.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up gnome-initial-setup-3.28.0/gnome-initial-setup/pages/language/gis-language-page.c.quacks_like_fedora gnome-initial-setup-3.28.0/gnome-initial-setup/pages/language/gis-language-page.c ---- gnome-initial-setup-3.28.0/gnome-initial-setup/pages/language/gis-language-page.c.quacks_like_fedora 2019-02-18 11:06:22.404874101 -0500 -+++ gnome-initial-setup-3.28.0/gnome-initial-setup/pages/language/gis-language-page.c 2019-02-18 13:29:59.069513421 -0500 -@@ -227,11 +227,18 @@ update_distro_logo (GisLanguagePage *pag - - if (g_file_get_contents ("/etc/os-release", &buffer, NULL, NULL)) - { -- id = get_item (buffer, "ID"); -+ id = get_item (buffer, "ID_LIKE"); -+ -+ if (id == NULL) -+ id = get_item (buffer, "ID"); -+ - g_free (buffer); - } - -- if (g_strcmp0 (id, "fedora") == 0) -+ if (id != NULL && -+ (strcmp (id, "fedora") == 0 || -+ strstr (id, " fedora") != NULL || -+ strstr (id, "fedora ") != NULL)) - { - g_object_set (priv->logo, "icon-name", "fedora-logo-icon", NULL); - } diff --git a/reduce-initial-setup-redundancy.patch b/reduce-initial-setup-redundancy.patch deleted file mode 100644 index a34470bd5190d40632fcb5fcb311c46acc2c349a..0000000000000000000000000000000000000000 --- a/reduce-initial-setup-redundancy.patch +++ /dev/null @@ -1,974 +0,0 @@ -From de07cbc69b8f64b1a7708f454f029814d3c48b10 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Thu, 15 Feb 2018 21:08:38 -0600 -Subject: [PATCH] Reduce initial setup redundancy - -This contains patches from these bugs: - -https://bugzilla.gnome.org/show_bug.cgi?id=793501 -https://bugzilla.gnome.org/show_bug.cgi?id=794166 - -modified a bit to not conflict with each other. - -This is a combination of work by Peng Wu and Michael Catanzaro. ---- - gnome-initial-setup/gis-assistant.c | 3 +- - gnome-initial-setup/gis-page.c | 8 + - gnome-initial-setup/gis-page.h | 2 + - gnome-initial-setup/gnome-initial-setup.c | 77 +++++++-- - .../pages/account/gis-account-page.h | 2 - - .../pages/account/gis-account-pages.c | 9 +- - .../pages/account/gis-account-pages.h | 2 +- - gnome-initial-setup/pages/eulas/gis-eula-pages.c | 16 +- - gnome-initial-setup/pages/eulas/gis-eula-pages.h | 2 +- - gnome-initial-setup/pages/goa/gis-goa-page.c | 9 +- - gnome-initial-setup/pages/goa/gis-goa-page.h | 2 +- - .../pages/keyboard/gis-keyboard-page.c | 185 ++++++++++++++++----- - .../pages/keyboard/gis-keyboard-page.h | 2 +- - .../pages/language/gis-language-page.c | 24 ++- - .../pages/language/gis-language-page.h | 3 +- - .../pages/language/gis-language-page.ui | 4 +- - .../pages/network/gis-network-page.c | 9 +- - .../pages/network/gis-network-page.h | 2 +- - .../pages/password/gis-password-page.c | 9 +- - .../pages/password/gis-password-page.h | 2 +- - .../pages/privacy/gis-privacy-page.c | 9 +- - .../pages/privacy/gis-privacy-page.h | 2 +- - gnome-initial-setup/pages/region/gis-region-page.c | 9 +- - gnome-initial-setup/pages/region/gis-region-page.h | 2 +- - .../pages/software/gis-software-page.c | 14 +- - .../pages/software/gis-software-page.h | 2 +- - .../pages/summary/gis-summary-page.c | 9 +- - .../pages/summary/gis-summary-page.h | 2 +- - .../pages/timezone/gis-timezone-page.c | 9 +- - .../pages/timezone/gis-timezone-page.h | 2 +- - 30 files changed, 296 insertions(+), 136 deletions(-) - -diff --git a/gnome-initial-setup/gis-assistant.c b/gnome-initial-setup/gis-assistant.c -index 37ed563..0a3bd05 100644 ---- a/gnome-initial-setup/gis-assistant.c -+++ b/gnome-initial-setup/gis-assistant.c -@@ -302,7 +302,8 @@ gis_assistant_add_page (GisAssistant *assistant, - - gtk_container_add (GTK_CONTAINER (priv->stack), GTK_WIDGET (page)); - -- if (priv->current_page->assistant_priv->link == link->prev) -+ if (priv->current_page && -+ priv->current_page->assistant_priv->link == link->prev) - update_navigation_buttons (assistant); - } - -diff --git a/gnome-initial-setup/gis-page.c b/gnome-initial-setup/gis-page.c -index e28f573..8564935 100644 ---- a/gnome-initial-setup/gis-page.c -+++ b/gnome-initial-setup/gis-page.c -@@ -382,3 +382,11 @@ gis_page_shown (GisPage *page) - if (GIS_PAGE_GET_CLASS (page)->shown) - GIS_PAGE_GET_CLASS (page)->shown (page); - } -+ -+gboolean -+gis_page_skip (GisPage *page) -+{ -+ if (GIS_PAGE_GET_CLASS (page)->skip) -+ return GIS_PAGE_GET_CLASS (page)->skip (page); -+ return TRUE; -+} -diff --git a/gnome-initial-setup/gis-page.h b/gnome-initial-setup/gis-page.h -index 02e3085..1f11578 100644 ---- a/gnome-initial-setup/gis-page.h -+++ b/gnome-initial-setup/gis-page.h -@@ -60,6 +60,7 @@ struct _GisPageClass - GCancellable *cancellable); - void (*save_data) (GisPage *page); - void (*shown) (GisPage *page); -+ gboolean (*skip) (GisPage *page); - }; - - GType gis_page_get_type (void); -@@ -80,6 +81,7 @@ void gis_page_apply_complete (GisPage *page, gboolean valid); - gboolean gis_page_get_applying (GisPage *page); - void gis_page_save_data (GisPage *page); - void gis_page_shown (GisPage *page); -+gboolean gis_page_skip (GisPage *page); - - G_END_DECLS - -diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c -index 5a988a3..4558810 100644 ---- a/gnome-initial-setup/gnome-initial-setup.c -+++ b/gnome-initial-setup/gnome-initial-setup.c -@@ -50,11 +50,15 @@ - #include "pages/summary/gis-summary-page.h" - - #define VENDOR_PAGES_GROUP "pages" --#define VENDOR_PAGES_SKIP_KEY "skip" -+#define VENDOR_SKIP_KEY "skip" -+#define VENDOR_NEW_USER_ONLY_KEY "new_user_only" -+#define VENDOR_EXISTING_USER_ONLY_KEY "existing_user_only" - - static gboolean force_existing_user_mode; - --typedef void (*PreparePage) (GisDriver *driver); -+static GPtrArray *skipped_pages; -+ -+typedef GisPage *(*PreparePage) (GisDriver *driver); - - typedef struct { - const gchar *page_id; -@@ -101,21 +105,40 @@ should_skip_page (GisDriver *driver, - } - - static gchar ** --pages_to_skip_from_file (void) -+strv_append (gchar **a, -+ gchar **b) -+{ -+ guint n = g_strv_length (a); -+ guint m = g_strv_length (b); -+ -+ a = g_renew (gchar *, a, n + m + 1); -+ for (guint i = 0; i < m; i++) -+ a[n + i] = g_strdup (b[i]); -+ a[n + m] = NULL; -+ -+ return a; -+} -+ -+static gchar ** -+pages_to_skip_from_file (gboolean is_new_user) - { - GKeyFile *skip_pages_file; - gchar **skip_pages = NULL; -+ gchar **additional_skip_pages = NULL; - GError *error = NULL; - - /* VENDOR_CONF_FILE points to a keyfile containing vendor customization - * options. This code will look for options under the "pages" group, and - * supports the following keys: -- * - skip (optional): list of pages to be skipped. -+ * - skip (optional): list of pages to be skipped always -+ * - new_user_only (optional): list of pages to be skipped in existing user mode -+ * - existing_user_only (optional): list of pages to be skipped in new user mode - * -- * This is how this file would look on a vendor image: -+ * This is how this file might look on a vendor image: - * - * [pages] -- * skip=language -+ * skip=timezone -+ * existing_user_only=language;keyboard - */ - skip_pages_file = g_key_file_new (); - if (!g_key_file_load_from_file (skip_pages_file, VENDOR_CONF_FILE, -@@ -127,8 +150,20 @@ pages_to_skip_from_file (void) - goto out; - } - -- skip_pages = g_key_file_get_string_list (skip_pages_file, VENDOR_PAGES_GROUP, -- VENDOR_PAGES_SKIP_KEY, NULL, NULL); -+ skip_pages = g_key_file_get_string_list (skip_pages_file, -+ VENDOR_PAGES_GROUP, -+ VENDOR_SKIP_KEY, NULL, NULL); -+ additional_skip_pages = g_key_file_get_string_list (skip_pages_file, -+ VENDOR_PAGES_GROUP, -+ is_new_user ? VENDOR_EXISTING_USER_ONLY_KEY : VENDOR_NEW_USER_ONLY_KEY, -+ NULL, NULL); -+ -+ if (!skip_pages && additional_skip_pages) { -+ skip_pages = additional_skip_pages; -+ } else if (skip_pages && additional_skip_pages) { -+ skip_pages = strv_append (skip_pages, additional_skip_pages); -+ g_strfreev (additional_skip_pages); -+ } - - out: - g_key_file_free (skip_pages_file); -@@ -159,16 +194,14 @@ static void - rebuild_pages_cb (GisDriver *driver) - { - PageData *page_data; -+ GisPage *page; - GisAssistant *assistant; - GisPage *current_page; - gchar **skip_pages; -- gboolean is_new_user; -+ gboolean is_new_user, skipped; - - assistant = gis_driver_get_assistant (driver); - current_page = gis_assistant_get_current_page (assistant); -- -- skip_pages = pages_to_skip_from_file (); -- - page_data = page_table; - - if (current_page != NULL) { -@@ -182,14 +215,23 @@ rebuild_pages_cb (GisDriver *driver) - } - - is_new_user = (gis_driver_get_mode (driver) == GIS_DRIVER_MODE_NEW_USER); -+ skip_pages = pages_to_skip_from_file (is_new_user); -+ - for (; page_data->page_id != NULL; ++page_data) { -- if (page_data->new_user_only && !is_new_user) -- continue; -+ skipped = FALSE; -+ -+ if ((page_data->new_user_only && !is_new_user) || -+ (should_skip_page (driver, page_data->page_id, skip_pages))) -+ skipped = TRUE; - -- if (should_skip_page (driver, page_data->page_id, skip_pages)) -+ page = page_data->prepare_page_func (driver); -+ if (!page) - continue; - -- page_data->prepare_page_func (driver); -+ if (skipped && gis_page_skip (page)) -+ g_ptr_array_add (skipped_pages, page); -+ else -+ gis_driver_add_page (driver, page); - } - - g_strfreev (skip_pages); -@@ -267,6 +309,7 @@ main (int argc, char *argv[]) - } - #endif - -+ skipped_pages = g_ptr_array_new_with_free_func ((GDestroyNotify)gtk_widget_destroy); - mode = get_mode (); - - /* We only do this in existing-user mode, because if gdm launches us -@@ -290,6 +333,8 @@ main (int argc, char *argv[]) - g_signal_connect (driver, "rebuild-pages", G_CALLBACK (rebuild_pages_cb), NULL); - status = g_application_run (G_APPLICATION (driver), argc, argv); - -+ g_ptr_array_free (skipped_pages, TRUE); -+ - g_object_unref (driver); - g_option_context_free (context); - return status; -diff --git a/gnome-initial-setup/pages/account/gis-account-page.h b/gnome-initial-setup/pages/account/gis-account-page.h -index cc34304..7629e1a 100644 ---- a/gnome-initial-setup/pages/account/gis-account-page.h -+++ b/gnome-initial-setup/pages/account/gis-account-page.h -@@ -50,8 +50,6 @@ struct _GisAccountPageClass - - GType gis_account_page_get_type (void); - --void gis_prepare_account_page (GisDriver *driver); -- - G_END_DECLS - - #endif /* __GIS_ACCOUNT_PAGE_H__ */ -diff --git a/gnome-initial-setup/pages/account/gis-account-pages.c b/gnome-initial-setup/pages/account/gis-account-pages.c -index 5f4411b..d9cc8d9 100644 ---- a/gnome-initial-setup/pages/account/gis-account-pages.c -+++ b/gnome-initial-setup/pages/account/gis-account-pages.c -@@ -23,11 +23,10 @@ - #include "gis-account-pages.h" - #include "gis-account-page.h" - --void -+GisPage * - gis_prepare_account_page (GisDriver *driver) - { -- gis_driver_add_page (driver, -- g_object_new (GIS_TYPE_ACCOUNT_PAGE, -- "driver", driver, -- NULL)); -+ return g_object_new (GIS_TYPE_ACCOUNT_PAGE, -+ "driver", driver, -+ NULL); - } -diff --git a/gnome-initial-setup/pages/account/gis-account-pages.h b/gnome-initial-setup/pages/account/gis-account-pages.h -index 20d615a..394421b 100644 ---- a/gnome-initial-setup/pages/account/gis-account-pages.h -+++ b/gnome-initial-setup/pages/account/gis-account-pages.h -@@ -28,7 +28,7 @@ - - G_BEGIN_DECLS - --void gis_prepare_account_page (GisDriver *driver); -+GisPage *gis_prepare_account_page (GisDriver *driver); - - G_END_DECLS - -diff --git a/gnome-initial-setup/pages/eulas/gis-eula-pages.c b/gnome-initial-setup/pages/eulas/gis-eula-pages.c -index 8c989c2..3de6653 100644 ---- a/gnome-initial-setup/pages/eulas/gis-eula-pages.c -+++ b/gnome-initial-setup/pages/eulas/gis-eula-pages.c -@@ -25,7 +25,7 @@ - #include "gis-eula-pages.h" - #include "gis-eula-page.h" - --void -+GisPage * - gis_prepare_eula_page (GisDriver *driver) - { - gchar *eulas_dir_path; -@@ -33,6 +33,7 @@ gis_prepare_eula_page (GisDriver *driver) - GError *error = NULL; - GFileEnumerator *enumerator = NULL; - GFileInfo *info; -+ GisPage *page = NULL; - - eulas_dir_path = g_build_filename (PKGDATADIR, "eulas", NULL); - eulas_dir = g_file_new_for_path (eulas_dir_path); -@@ -52,11 +53,12 @@ gis_prepare_eula_page (GisDriver *driver) - - while ((info = g_file_enumerator_next_file (enumerator, NULL, &error)) != NULL) { - GFile *eula = g_file_enumerator_get_child (enumerator, info); -- gis_driver_add_page (driver, -- g_object_new (GIS_TYPE_EULA_PAGE, -- "driver", driver, -- "eula", eula, -- NULL)); -+ -+ page = g_object_new (GIS_TYPE_EULA_PAGE, -+ "driver", driver, -+ "eula", eula, -+ NULL); -+ - g_object_unref (eula); - } - -@@ -71,4 +73,6 @@ gis_prepare_eula_page (GisDriver *driver) - - g_object_unref (eulas_dir); - g_clear_object (&enumerator); -+ -+ return page; - } -diff --git a/gnome-initial-setup/pages/eulas/gis-eula-pages.h b/gnome-initial-setup/pages/eulas/gis-eula-pages.h -index 9424a6d..54906bc 100644 ---- a/gnome-initial-setup/pages/eulas/gis-eula-pages.h -+++ b/gnome-initial-setup/pages/eulas/gis-eula-pages.h -@@ -28,7 +28,7 @@ - - G_BEGIN_DECLS - --void gis_prepare_eula_page (GisDriver *driver); -+GisPage *gis_prepare_eula_page (GisDriver *driver); - - G_END_DECLS - -diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.c b/gnome-initial-setup/pages/goa/gis-goa-page.c -index fcdcabe..3ed4e98 100644 ---- a/gnome-initial-setup/pages/goa/gis-goa-page.c -+++ b/gnome-initial-setup/pages/goa/gis-goa-page.c -@@ -363,11 +363,10 @@ gis_goa_page_init (GisGoaPage *page) - gtk_widget_init_template (GTK_WIDGET (page)); - } - --void -+GisPage * - gis_prepare_goa_page (GisDriver *driver) - { -- gis_driver_add_page (driver, -- g_object_new (GIS_TYPE_GOA_PAGE, -- "driver", driver, -- NULL)); -+ return g_object_new (GIS_TYPE_GOA_PAGE, -+ "driver", driver, -+ NULL); - } -diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.h b/gnome-initial-setup/pages/goa/gis-goa-page.h -index e65aa28..31918bf 100644 ---- a/gnome-initial-setup/pages/goa/gis-goa-page.h -+++ b/gnome-initial-setup/pages/goa/gis-goa-page.h -@@ -48,7 +48,7 @@ struct _GisGoaPageClass - - GType gis_goa_page_get_type (void); - --void gis_prepare_goa_page (GisDriver *driver); -+GisPage *gis_prepare_goa_page (GisDriver *driver); - - G_END_DECLS - -diff --git a/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c b/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c -index 91d9a25..445da30 100644 ---- a/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c -+++ b/gnome-initial-setup/pages/keyboard/gis-keyboard-page.c -@@ -30,6 +30,9 @@ - #include - #include - -+#define GNOME_DESKTOP_USE_UNSTABLE_API -+#include -+ - #include "gis-keyboard-page.h" - #include "keyboard-resources.h" - #include "cc-input-chooser.h" -@@ -208,53 +211,145 @@ gis_keyboard_page_apply (GisPage *page, - return FALSE; - } - -+static GSList * -+get_localed_input (GDBusProxy *proxy) -+{ -+ GVariant *v; -+ const gchar *s; -+ gchar *id; -+ guint i, n; -+ gchar **layouts = NULL; -+ gchar **variants = NULL; -+ GSList *sources = NULL; -+ -+ if (!proxy) -+ return NULL; -+ -+ v = g_dbus_proxy_get_cached_property (proxy, "X11Layout"); -+ if (v) { -+ s = g_variant_get_string (v, NULL); -+ layouts = g_strsplit (s, ",", -1); -+ g_variant_unref (v); -+ } -+ -+ v = g_dbus_proxy_get_cached_property (proxy, "X11Variant"); -+ if (v) { -+ s = g_variant_get_string (v, NULL); -+ if (s && *s) -+ variants = g_strsplit (s, ",", -1); -+ g_variant_unref (v); -+ } -+ -+ if (variants && variants[0]) -+ n = MIN (g_strv_length (layouts), g_strv_length (variants)); -+ else if (layouts && layouts[0]) -+ n = g_strv_length (layouts); -+ else -+ n = 0; -+ -+ for (i = 0; i < n && layouts[i][0]; i++) { -+ if (variants && variants[i] && variants[i][0]) -+ id = g_strdup_printf ("%s+%s", layouts[i], variants[i]); -+ else -+ id = g_strdup (layouts[i]); -+ sources = g_slist_prepend (sources, id); -+ } -+ -+ g_strfreev (variants); -+ g_strfreev (layouts); -+ -+ return sources; -+} -+ - static void --load_localed_input (GisKeyboardPage *self) -+add_default_keyboard_layout (GDBusProxy *proxy, -+ GVariantBuilder *builder) - { -- GisKeyboardPagePrivate *priv = gis_keyboard_page_get_instance_private (self); -- GVariant *v; -- const gchar *s; -- gchar *id; -- guint i, n; -- gchar **layouts = NULL; -- gchar **variants = NULL; -- GSList *sources = NULL; -+ GSList *sources = get_localed_input (proxy); -+ sources = g_slist_reverse (sources); - -- if (!priv->localed) -- return; -+ for (; sources; sources = sources->next) -+ g_variant_builder_add (builder, "(ss)", "xkb", -+ (const gchar *) sources->data); - -- v = g_dbus_proxy_get_cached_property (priv->localed, "X11Layout"); -- if (v) { -- s = g_variant_get_string (v, NULL); -- layouts = g_strsplit (s, ",", -1); -- g_variant_unref (v); -- } -+ g_slist_free_full (sources, g_free); -+} - -- v = g_dbus_proxy_get_cached_property (priv->localed, "X11Variant"); -- if (v) { -- s = g_variant_get_string (v, NULL); -- if (s && *s) -- variants = g_strsplit (s, ",", -1); -- g_variant_unref (v); -- } -+static void -+add_default_input_sources (GisKeyboardPage *self, -+ GDBusProxy *proxy) -+{ -+ const gchar *type; -+ const gchar *id; -+ const gchar * const *locales; -+ const gchar *language; -+ GVariantBuilder builder; -+ GSettings *input_settings; -+ -+ input_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); -+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); -+ -+ add_default_keyboard_layout (proxy, &builder); -+ -+ /* add other input sources */ -+ locales = g_get_language_names (); -+ language = locales[0]; -+ if (gnome_get_input_source_from_locale (language, &type, &id)) { -+ if (!g_str_equal (type, "xkb")) -+ g_variant_builder_add (&builder, "(ss)", type, id); -+ } -+ -+ g_settings_delay (input_settings); -+ g_settings_set_value (input_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); -+ g_settings_set_uint (input_settings, KEY_CURRENT_INPUT_SOURCE, 0); -+ g_settings_apply (input_settings); -+ -+ g_object_unref (input_settings); -+} - -- if (variants && variants[0]) -- n = MIN (g_strv_length (layouts), g_strv_length (variants)); -- else if (layouts && layouts[0]) -- n = g_strv_length (layouts); -- else -- n = 0; -- -- for (i = 0; i < n && layouts[i][0]; i++) { -- if (variants && variants[i] && variants[i][0]) -- id = g_strdup_printf ("%s+%s", layouts[i], variants[i]); -- else -- id = g_strdup (layouts[i]); -- sources = g_slist_prepend (sources, id); -- } -+static void -+skip_proxy_ready (GObject *source, -+ GAsyncResult *res, -+ gpointer data) -+{ -+ GisKeyboardPage *self = data; -+ GDBusProxy *proxy; -+ GError *error = NULL; -+ -+ proxy = g_dbus_proxy_new_finish (res, &error); -+ -+ if (!proxy) { -+ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) -+ g_warning ("Failed to contact localed: %s", error->message); -+ g_error_free (error); -+ return; -+ } -+ -+ add_default_input_sources (self, proxy); -+ -+ g_object_unref (proxy); -+} - -- g_strfreev (variants); -- g_strfreev (layouts); -+static gboolean -+gis_keyboard_page_skip (GisPage *self) -+{ -+ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, -+ G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES, -+ NULL, -+ "org.freedesktop.locale1", -+ "/org/freedesktop/locale1", -+ "org.freedesktop.locale1", -+ NULL, -+ (GAsyncReadyCallback) skip_proxy_ready, -+ self); -+ return TRUE; -+} -+ -+static void -+load_localed_input (GisKeyboardPage *self) -+{ -+ GisKeyboardPagePrivate *priv = gis_keyboard_page_get_instance_private (self); -+ GSList * sources = get_localed_input (priv->localed); - - /* These will be added silently after the user selection when - * writing out the settings. */ -@@ -375,6 +470,7 @@ gis_keyboard_page_class_init (GisKeyboardPageClass * klass) - - page_class->page_id = PAGE_ID; - page_class->apply = gis_keyboard_page_apply; -+ page_class->skip = gis_keyboard_page_skip; - page_class->locale_changed = gis_keyboard_page_locale_changed; - object_class->constructed = gis_keyboard_page_constructed; - object_class->finalize = gis_keyboard_page_finalize; -@@ -389,11 +485,10 @@ gis_keyboard_page_init (GisKeyboardPage *self) - gtk_widget_init_template (GTK_WIDGET (self)); - } - --void -+GisPage * - gis_prepare_keyboard_page (GisDriver *driver) - { -- gis_driver_add_page (driver, -- g_object_new (GIS_TYPE_KEYBOARD_PAGE, -- "driver", driver, -- NULL)); -+ return g_object_new (GIS_TYPE_KEYBOARD_PAGE, -+ "driver", driver, -+ NULL); - } -diff --git a/gnome-initial-setup/pages/keyboard/gis-keyboard-page.h b/gnome-initial-setup/pages/keyboard/gis-keyboard-page.h -index 832473f..d5710a0 100644 ---- a/gnome-initial-setup/pages/keyboard/gis-keyboard-page.h -+++ b/gnome-initial-setup/pages/keyboard/gis-keyboard-page.h -@@ -63,7 +63,7 @@ struct _GisKeyboardPageClass - - GType gis_keyboard_page_get_type (void) G_GNUC_CONST; - --void gis_prepare_keyboard_page (GisDriver *driver); -+GisPage *gis_prepare_keyboard_page (GisDriver *driver); - - G_END_DECLS - -diff --git a/gnome-initial-setup/pages/language/gis-language-page.c b/gnome-initial-setup/pages/language/gis-language-page.c -index 6e246f9..c5f895c 100644 ---- a/gnome-initial-setup/pages/language/gis-language-page.c -+++ b/gnome-initial-setup/pages/language/gis-language-page.c -@@ -267,6 +267,8 @@ gis_language_page_constructed (GObject *object) - - update_distro_logo (page); - -+ gtk_widget_show (priv->language_chooser); -+ - g_signal_connect (priv->language_chooser, "notify::language", - G_CALLBACK (language_changed), page); - g_signal_connect (priv->language_chooser, "confirm", -@@ -288,7 +290,7 @@ gis_language_page_constructed (GObject *object) - (GAsyncReadyCallback) localed_proxy_ready, - object); - g_object_unref (bus); -- } -+ } - - gis_page_set_complete (GIS_PAGE (page), TRUE); - gtk_widget_show (GTK_WIDGET (page)); -@@ -300,6 +302,16 @@ gis_language_page_locale_changed (GisPage *page) - gis_page_set_title (GIS_PAGE (page), _("Welcome")); - } - -+static gboolean -+gis_language_page_skip (GisPage *page) -+{ -+ GisLanguagePagePrivate *priv = gis_language_page_get_instance_private (GIS_LANGUAGE_PAGE (page)); -+ -+ gtk_widget_hide (priv->language_chooser); -+ -+ return FALSE; -+} -+ - static void - gis_language_page_dispose (GObject *object) - { -@@ -327,6 +339,7 @@ gis_language_page_class_init (GisLanguagePageClass *klass) - - page_class->page_id = PAGE_ID; - page_class->locale_changed = gis_language_page_locale_changed; -+ page_class->skip = gis_language_page_skip; - object_class->constructed = gis_language_page_constructed; - object_class->dispose = gis_language_page_dispose; - } -@@ -341,11 +354,10 @@ gis_language_page_init (GisLanguagePage *page) - gtk_widget_init_template (GTK_WIDGET (page)); - } - --void -+GisPage * - gis_prepare_language_page (GisDriver *driver) - { -- gis_driver_add_page (driver, -- g_object_new (GIS_TYPE_LANGUAGE_PAGE, -- "driver", driver, -- NULL)); -+ return g_object_new (GIS_TYPE_LANGUAGE_PAGE, -+ "driver", driver, -+ NULL); - } -diff --git a/gnome-initial-setup/pages/language/gis-language-page.h b/gnome-initial-setup/pages/language/gis-language-page.h -index 37b33ab..a5b78ff 100644 ---- a/gnome-initial-setup/pages/language/gis-language-page.h -+++ b/gnome-initial-setup/pages/language/gis-language-page.h -@@ -50,7 +50,8 @@ struct _GisLanguagePageClass - - GType gis_language_page_get_type (void); - --void gis_prepare_language_page (GisDriver *driver); -+GisPage *gis_prepare_language_page (GisDriver *driver); -+GisPage *gis_prepare_language_page_without_language_selection (GisDriver *driver); - - G_END_DECLS - -diff --git a/gnome-initial-setup/pages/language/gis-language-page.ui b/gnome-initial-setup/pages/language/gis-language-page.ui -index 1b98a6d..d5e962a 100644 ---- a/gnome-initial-setup/pages/language/gis-language-page.ui -+++ b/gnome-initial-setup/pages/language/gis-language-page.ui -@@ -7,7 +7,7 @@ - True - vertical - center -- fill -+ center - -