Auto sync2gitlab import of gnome-initial-setup-3.28.0-10.el8.src.rpm

This commit is contained in:
James Antill 2022-05-26 07:47:46 -04:00
parent c61f706256
commit 894d137431
11 changed files with 1886 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/gnome-initial-setup-3.28.0.tar.xz

1
EMPTY
View File

@ -1 +0,0 @@

View File

@ -0,0 +1,30 @@
From 985f2a009ddf5179482e7551400cf8065553707e Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@igalia.com>
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

View File

@ -0,0 +1,91 @@
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);
}

View File

@ -0,0 +1,200 @@
From 55f148cb0e09009bc0bfc2e12b58fa3577bc900c Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
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 <oholy@redhat.com>
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 <oholy@redhat.com>
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

474
gnome-initial-setup.spec Normal file
View File

@ -0,0 +1,474 @@
%global nm_version 1.2
%global nma_version 1.0
%global glib_required_version 2.53.0
%global gtk_required_version 3.11.3
%global geoclue_version 2.3.1
Name: gnome-initial-setup
Version: 3.28.0
Release: 10%{?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
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
BuildRequires: krb5-devel
BuildRequires: desktop-file-utils
BuildRequires: intltool
BuildRequires: libpwquality-devel
BuildRequires: pkgconfig(libnm) >= %{nm_version}
BuildRequires: pkgconfig(libnma) >= %{nma_version}
BuildRequires: pkgconfig(accountsservice)
BuildRequires: pkgconfig(gnome-desktop-3.0)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(cheese)
BuildRequires: pkgconfig(cheese-gtk) >= 3.3.5
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(geocode-glib-1.0)
BuildRequires: pkgconfig(gweather-3.0)
BuildRequires: pkgconfig(goa-1.0)
BuildRequires: pkgconfig(goa-backend-1.0)
BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk_required_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(gio-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(gdm)
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(libgeoclue-2.0) >= %{geoclue_version}
BuildRequires: pkgconfig(packagekit-glib2)
BuildRequires: pkgconfig(webkit2gtk-4.0)
BuildRequires: krb5-devel
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
Requires: geoclue2-libs%{?_isa} >= %{geoclue_version}
Requires: glib2%{?_isa} >= %{glib_required_version}
# we install a rules file
Requires: polkit-js-engine
Requires: /usr/bin/gkbd-keyboard-display
Requires(pre): shadow-utils
Provides: user(%name)
%description
GNOME Initial Setup is an alternative to firstboot, providing
a good setup experience to welcome you to your system, and walks
you through configuring it. It is integrated with gdm.
%prep
%autosetup -p1
%build
# patches touch am files
autoreconf -i
%configure \
--enable-software-sources \
--with-vendor-conf-file=%{_datadir}/gnome-initial-setup/vendor.conf
make %{?_smp_mflags}
%install
%make_install
find %{buildroot} -name '*.la' -exec rm -f {} ';'
# 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
mkdir -p %{buildroot}%{_datadir}/gnome-initial-setup
cp %{SOURCE1} %{buildroot}%{_datadir}/gnome-initial-setup/
%find_lang %{name}
%pre
useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null || :
%files -f %{name}.lang
%license COPYING
%doc README
%{_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}/gnome-session/sessions/gnome-initial-setup.session
%{_datadir}/gnome-shell/modes/initial-setup.json
%{_datadir}/polkit-1/rules.d/20-gnome-initial-setup.rules
%dir %{_datadir}/gnome-initial-setup
%{_datadir}/gnome-initial-setup/vendor.conf
%changelog
* Tue Nov 23 2021 David King <dking@redhat.com> - 3.28.0-10
- Fix missing icon for legacy faces (#1838088)
* Mon Oct 19 2020 David King <dking@redhat.com> - 3.28.0-9
- Fix Japanese language default (#1703333)
* Mon Feb 18 2019 Ray Strode <rstrode@redhat.com> - 3.28.0-8
- Ensure vendora logo gets used instead of foot
Resolves: #1655150
* Mon Apr 30 2018 Adam Williamson <awilliam@redhat.com> - 3.28.0-7
- Drop unnecessary pkgconfig(NetworkManager) BuildRequire
- Run autoreconf to avoid automake version mismatch
* Wed Apr 11 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.28.0-6
- Allow setting weak passwords
* Mon Apr 02 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.28.0-5
- Move vendor.conf to /usr/share
* Sat Mar 31 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.28.0-4
- Forgot to update vendor.conf in the previous build
* Sat Mar 31 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.28.0-3
- Update reduce initial setup redundancy patch again
* Sat Mar 31 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.28.0-2
- Update reduce initial setup redundancy patches
* Tue Mar 13 2018 Kalev Lember <klember@redhat.com> - 3.28.0-1
- Update to 3.28.0
* Fri Feb 16 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.27.90-2
- Install vendor.conf to conditionally suppress certain pages
* Fri Feb 16 2018 Michael Catanzaro <mcatanzaro@gnome.org> - 3.27.90-1
- Upgrade to 3.27.90 and add reduce initial setup redundancy patches
* Tue Feb 13 2018 Björn Esser <besser82@fedoraproject.org> - 3.26.0-5
- Rebuild against newer gnome-desktop3 package
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.26.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Feb 05 2018 Kalev Lember <klember@redhat.com> - 3.26.0-3
- Rebuilt for libgweather soname bump
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 3.26.0-2
- Rebuilt for switch to libxcrypt
* Thu Sep 14 2017 Kalev Lember <klember@redhat.com> - 3.26.0-1
- Update to 3.26.0
* Thu Sep 07 2017 Kalev Lember <klember@redhat.com> - 3.25.92-1
- Update to 3.25.92
* Mon Jul 31 2017 Kalev Lember <klember@redhat.com> - 3.25.4-1
- Update to 3.25.4
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.25.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sun Jun 25 2017 Kalev Lember <klember@redhat.com> - 3.25.3-1
- Update to 3.25.3
* Wed May 10 2017 Kalev Lember <klember@redhat.com> - 3.24.2-1
- Update to 3.24.2
* Tue Mar 21 2017 Rui Matos <rmatos@redhat.com> - 3.24.0-1
- Update to 3.24.0
* Tue Mar 14 2017 Florian Müllner <fmuellner@redhat.com> - 3.23.92-1
- Update to 3.23.92
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.23.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Jan 31 2017 Rui Matos <rmatos@redhat.com> - 3.23.1-2
- Honor anaconda's firstboot being disabled
* Sun Oct 30 2016 Kalev Lember <klember@redhat.com> - 3.23.1-1
- Update to 3.23.1
* Wed Oct 12 2016 Kalev Lember <klember@redhat.com> - 3.22.1-1
- Update to 3.22.1
* Mon Sep 19 2016 Kalev Lember <klember@redhat.com> - 3.22.0-1
- Update to 3.22.0
* Tue Sep 13 2016 Kalev Lember <klember@redhat.com> - 3.21.92-1
- Update to 3.21.92
* Mon Sep 05 2016 Kalev Lember <klember@redhat.com> - 3.21.91-2
- Build the software sources page
* Sat Sep 03 2016 Kalev Lember <klember@redhat.com> - 3.21.91-1
- Update to 3.21.91
- Update project URL
* Wed Apr 13 2016 Kalev Lember <klember@redhat.com> - 3.20.1-1
- Update to 3.20.1
* Tue Mar 22 2016 Kalev Lember <klember@redhat.com> - 3.20.0-1
- Update to 3.20.0
* Tue Mar 15 2016 Kalev Lember <klember@redhat.com> - 3.19.92-1
- Update to 3.19.92
* Tue Mar 01 2016 Richard Hughes <rhughes@redhat.com> - 3.19.91-1
- Update to 3.19.91
* Tue Feb 16 2016 Richard Hughes <rhughes@redhat.com> - 3.19.2-1
- Update to 3.19.2
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.19.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Oct 28 2015 Kalev Lember <klember@redhat.com> - 3.19.1-1
- Update to 3.19.1
* Mon Sep 21 2015 Kalev Lember <klember@redhat.com> - 3.18.0-1
- Update to 3.18.0
* Mon Aug 31 2015 Kalev Lember <klember@redhat.com> - 3.17.91-1
- Update to 3.17.91
* Mon Aug 17 2015 Kalev Lember <klember@redhat.com> - 3.17.90-1
- Update to 3.17.90
- Use make_install macro
* Mon Aug 17 2015 Kalev Lember <klember@redhat.com> - 3.17.4-2
- Rebuilt for libcheese soname bump
* Mon Jul 27 2015 David King <amigadave@amigadave.com> - 3.17.4-1
- Update to 3.17.4
* Wed Jul 22 2015 David King <amigadave@amigadave.com> - 3.16.3-3
- Bump for new gnome-desktop3
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.16.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon May 18 2015 Matthias Clasen <mclasen@redhat.com> - 3.16.3-1
- Update to 3.16.3
* Tue May 12 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.2-1
- Update to 3.16.2
* Wed Apr 15 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.1-1
- Update to 3.16.1
* Mon Mar 23 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.0-1
- Update to 3.16.0
* Wed Mar 18 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.92-1
- Update to 3.15.92
* Thu Mar 05 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.91.1-1
- Update to 3.15.91.1
* Mon Mar 02 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.91-1
- Update to 3.15.91
- Use the %%license macro for the COPYING file
* Thu Feb 19 2015 Matthias Clasen <mclasen@redhat.com> - 3.15.90.1-1
- Update to 3.15.90.1
* Tue Dec 16 2014 Rui Matos <rmatos@redhat.com> - 3.14.2.1-2
- Resolves: rhbz#1172363
* Tue Nov 11 2014 Rui Matos <rmatos@redhat.com> - 3.14.2.1-1
- Update to 3.14.2.1
* Mon Nov 10 2014 Rui Matos <rmatos@redhat.com> - 3.14.2-1
- Update to 3.14.2
- Resolves: rhbz#1158442
* Fri Oct 31 2014 Rui Matos <rmatos@redhat.com> - 3.14.1-3
- Resolves: rhbz#1151519
* Tue Oct 21 2014 Rui Matos <rmatos@redhat.com> - 3.14.1-2
- Resolves: rhbz#1154206
* Sat Oct 11 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.1-1
- Update to 3.14.1
* Tue Sep 23 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.0-1
- Update to 3.14.0
* Wed Sep 17 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.7-1
- Update to 3.13.7
* Tue Sep 16 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.6-1
- Update to 3.13.6
* Mon Sep 08 2014 Adam Williamson <awilliam@redhat.com> - 3.13.5-2
- backport upstream patch to offer full list of keyboard layouts (BGO #729208)
* Wed Sep 03 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.5-1
- Update to 3.13.5
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.13.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Aug 13 2014 Matthias Clasen <mclasen@redhat.com> - 3.13.4-2
- Drop the yelp focus patch (we've dropped the yelp patch it depends on)
* Fri Jul 25 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.4-1
- Update to 3.13.4
* Thu Jul 24 2014 Matthias Clasen <mclasen@redhat.com> - 3.12.1-3
- Fix a memory corruption crash (#1116478)
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu May 15 2014 Kalev Lember <kalevlember@gmail.com> - 3.12.1-1
- Update to 3.12.1
* Tue Mar 25 2014 Kalev Lember <kalevlember@gmail.com> - 3.12.0-1
- Update to 3.12.0
* Thu Mar 20 2014 Richard Hughes <rhughes@redhat.com> - 3.11.92-1
- Update to 3.11.92
* Sat Mar 08 2014 Richard Hughes <rhughes@redhat.com> - 3.11.91-1
- Update to 3.11.91
* Fri Feb 28 2014 Richard Hughes <rhughes@redhat.com> - 3.11.90-1
- Update to 3.11.90
* Wed Feb 19 2014 Kalev Lember <kalevlember@gmail.com> - 3.10.1.1-5
- Rebuilt for libgnome-desktop soname bump
* Fri Nov 29 2013 Rui Matos <rmatos@redhat.com> - 3.10.1.1-4
- Resolves: rhbz#1035548 - Disables the GOA page in new user mode
* Thu Nov 28 2013 Rui Matos <rmatos@redhat.com> - 3.10.1.1-3
- Resolves: rhbz#1027507 - [abrt] gnome-initial-setup-3.10.1.1-2.fc20: magazine_chain_pop_head
* Fri Nov 1 2013 Matthias Clasen <mclasen@redhat.com> - 3.10.1.1-2
- Fix goa add dialog to not be empty
* Mon Oct 28 2013 Richard Hughes <rhughes@redhat.com> - 3.10.1.1-1
- Update to 3.10.1.1
* Thu Sep 26 2013 Kalev Lember <kalevlember@gmail.com> - 3.10.0.1-1
- Update to 3.10.0.1
* Wed Sep 25 2013 Kalev Lember <kalevlember@gmail.com> - 3.10.0-1
- Update to 3.10.0
* Tue Sep 03 2013 Kalev Lember <kalevlember@gmail.com> - 0.12-7
- Rebuilt for libgnome-desktop soname bump
* Fri Aug 23 2013 Kalev Lember <kalevlember@gmail.com> - 0.12-6
- Rebuilt for gnome-online-accounts soname bump
* Fri Aug 09 2013 Kalev Lember <kalevlember@gmail.com> - 0.12-5
- Rebuilt for cogl 1.15.4 soname bump
* Tue Aug 06 2013 Adam Williamson <awilliam@redhat.com> - 0.12-4
- rebuild for new libgweather
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Jun 21 2013 Kalev Lember <kalevlember@gmail.com> - 0.12-2
- Rebuilt for libgweather 3.9.3 soname bump
* Mon Jun 17 2013 Rui Matos <rmatos@redhat.com> - 0.12-1
- Update to 0.12
* Fri Jun 7 2013 Matthias Clasen <mclasen@redhat.com> - 0.11-2
- Require polkit-js-engine
* Tue May 28 2013 Matthias Clasen <mclasen@redhat.com> - 0.11-1
- Update to 0.11
* Tue May 14 2013 Rui Matos <rmatos@redhat.com> - 0.10-1
- Update to 0.10
- Add BuildRequires on polkit-devel
- Update files list
* Thu May 2 2013 Rui Matos <rmatos@redhat.com> - 0.9-2
- Remove unused patches
- Add build requires for ibus
* Tue Apr 16 2013 Matthias Clasen <mclasen@redhat.com> - 0.9-1
- Update to 0.9
* Tue Apr 16 2013 Ray Strode <rstrode@redhat.com> 0.8-4
- Add requires for keyboard viewer app
* Wed Mar 20 2013 Ray Strode <rstrode@redhat.com> 0.8-3
- Add cosimoc fix for gd page transitions
* Wed Mar 20 2013 Ray Strode <rstrode@redhat.com> 0.8-2
- Disable gd page transitions for now since they don't
completely work right (ask adamw).
- Fix crasher when realmd goes away
* Tue Mar 19 2013 Matthias Clasen <mclasen@redhat.com> - 0.8-1
- Update to 0.8
* Tue Mar 12 2013 Matthias Clasen <mclasen@redhat.com> - 0.7-1
- Update to 0.7
* Thu Feb 21 2013 Kalev Lember <kalevlember@gmail.com> - 0.6-4
- Rebuilt for cogl soname bump
* Wed Feb 20 2013 Kalev Lember <kalevlember@gmail.com> - 0.6-3
- Rebuilt for libgnome-desktop soname bump
* Fri Jan 25 2013 Peter Robinson <pbrobinson@fedoraproject.org> 0.6-2
- Rebuild for new cogl
* Wed Jan 16 2013 Matthias Clasen <mclasen@redhat.com> - 0.6-1
- 0.6
* Fri Jan 11 2013 Matthias Clasen <mclasen@redhat.com> - 0.5-1
- 0.5
* Fri Dec 21 2012 Kalev Lember <kalevlember@gmail.com> - 0.4-2
- Rebuilt for libgweather soname bump
* Thu Nov 22 2012 Matthias Clasen <mclasen@redhat.com> - 0.4-1
- 0.4
* Fri Oct 26 2012 Jasper St. Pierre <jstpierre@mecheye.net> - 0.3-3
- Add krb5
* Fri Oct 26 2012 Jasper St. Pierre <jstpierre@mecheye.net> - 0.3-2
- 0.3-2
* Thu Oct 18 2012 Matthias Clsaen <mclasen@redhat.com> - 0.3-1
- 0.3
* Fri Sep 14 2012 Matthias Clasen <mclasen@redhat.com> - 0.2-2
- Add Requires: gdm
* Wed Aug 29 2012 Jasper St. Pierre <jstpierre@mecheye.net> - 0.2-1
- Update to 0.2
* Fri Jun 08 2012 Jasper St. Pierre <jstpierre@mecheye.net> - 0.1
- Initial packaging.

View File

@ -0,0 +1,88 @@
From b2659246f3e2afcbf51a92ee6839775de4e6487a Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
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

24
quacks-like-fedora.patch Normal file
View File

@ -0,0 +1,24 @@
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);
}

View File

@ -0,0 +1,974 @@
From de07cbc69b8f64b1a7708f454f029814d3c48b10 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@igalia.com>
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 <gtk/gtk.h>
#include <polkit/polkit.h>
+#define GNOME_DESKTOP_USE_UNSTABLE_API
+#include <libgnome-desktop/gnome-languages.h>
+
#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 @@
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="halign">center</property>
- <property name="valign">fill</property>
+ <property name="valign">center</property>
<child>
<object class="GtkImage" id="logo">
<property name="visible" bind-source="GisLanguagePage" bind-property="small-screen" bind-flags="invert-boolean|sync-create"/>
@@ -30,7 +30,7 @@
<object class="CcLanguageChooser" id="language_chooser">
<property name="margin_bottom">18</property>
<property name="width_request">400</property>
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="valign">start</property>
</object>
</child>
diff --git a/gnome-initial-setup/pages/network/gis-network-page.c b/gnome-initial-setup/pages/network/gis-network-page.c
index 0beae26..29fc523 100644
--- a/gnome-initial-setup/pages/network/gis-network-page.c
+++ b/gnome-initial-setup/pages/network/gis-network-page.c
@@ -691,11 +691,10 @@ gis_network_page_init (GisNetworkPage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_network_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_NETWORK_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_NETWORK_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/network/gis-network-page.h b/gnome-initial-setup/pages/network/gis-network-page.h
index cdb1798..172b7d1 100644
--- a/gnome-initial-setup/pages/network/gis-network-page.h
+++ b/gnome-initial-setup/pages/network/gis-network-page.h
@@ -48,7 +48,7 @@ struct _GisNetworkPageClass
GType gis_network_page_get_type (void);
-void gis_prepare_network_page (GisDriver *driver);
+GisPage *gis_prepare_network_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/password/gis-password-page.c b/gnome-initial-setup/pages/password/gis-password-page.c
index cefa30e..cf3db9e 100644
--- a/gnome-initial-setup/pages/password/gis-password-page.c
+++ b/gnome-initial-setup/pages/password/gis-password-page.c
@@ -304,12 +304,11 @@ gis_password_page_init (GisPasswordPage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_password_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_PASSWORD_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_PASSWORD_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/password/gis-password-page.h b/gnome-initial-setup/pages/password/gis-password-page.h
index 59d22c7..954782f 100644
--- a/gnome-initial-setup/pages/password/gis-password-page.h
+++ b/gnome-initial-setup/pages/password/gis-password-page.h
@@ -50,7 +50,7 @@ struct _GisPasswordPageClass
GType gis_password_page_get_type (void);
-void gis_prepare_password_page (GisDriver *driver);
+GisPage *gis_prepare_password_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/privacy/gis-privacy-page.c b/gnome-initial-setup/pages/privacy/gis-privacy-page.c
index f2af372..7d83d62 100644
--- a/gnome-initial-setup/pages/privacy/gis-privacy-page.c
+++ b/gnome-initial-setup/pages/privacy/gis-privacy-page.c
@@ -321,11 +321,10 @@ gis_privacy_page_init (GisPrivacyPage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_privacy_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_PRIVACY_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_PRIVACY_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/privacy/gis-privacy-page.h b/gnome-initial-setup/pages/privacy/gis-privacy-page.h
index d814612..9596b36 100644
--- a/gnome-initial-setup/pages/privacy/gis-privacy-page.h
+++ b/gnome-initial-setup/pages/privacy/gis-privacy-page.h
@@ -50,7 +50,7 @@ struct _GisPrivacyPageClass
GType gis_privacy_page_get_type (void);
-void gis_prepare_privacy_page (GisDriver *driver);
+GisPage *gis_prepare_privacy_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/region/gis-region-page.c b/gnome-initial-setup/pages/region/gis-region-page.c
index 6e90d57..5a31b9c 100644
--- a/gnome-initial-setup/pages/region/gis-region-page.c
+++ b/gnome-initial-setup/pages/region/gis-region-page.c
@@ -276,11 +276,10 @@ gis_region_page_init (GisRegionPage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_region_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_REGION_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_REGION_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/region/gis-region-page.h b/gnome-initial-setup/pages/region/gis-region-page.h
index eca0204..b99c2fe 100644
--- a/gnome-initial-setup/pages/region/gis-region-page.h
+++ b/gnome-initial-setup/pages/region/gis-region-page.h
@@ -50,7 +50,7 @@ struct _GisRegionPageClass
GType gis_region_page_get_type (void);
-void gis_prepare_region_page (GisDriver *driver);
+GisPage *gis_prepare_region_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/software/gis-software-page.c b/gnome-initial-setup/pages/software/gis-software-page.c
index 7c15a2c..f3e827a 100644
--- a/gnome-initial-setup/pages/software/gis-software-page.c
+++ b/gnome-initial-setup/pages/software/gis-software-page.c
@@ -244,22 +244,24 @@ gis_software_page_init (GisSoftwarePage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_software_page (GisDriver *driver)
{
-#ifdef ENABLE_SOFTWARE_SOURCES
GSettingsSchemaSource *source;
GSettingsSchema *schema;
+ GisPage *page = NULL;
+#ifdef ENABLE_SOFTWARE_SOURCES
source = g_settings_schema_source_get_default ();
schema = g_settings_schema_source_lookup (source, "org.gnome.software", TRUE);
if (schema != NULL && g_settings_schema_has_key (schema, "show-nonfree-software"))
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_SOFTWARE_PAGE,
- "driver", driver,
- NULL));
+ page = g_object_new (GIS_TYPE_SOFTWARE_PAGE,
+ "driver", driver,
+ NULL);
if (schema != NULL)
g_settings_schema_unref (schema);
#endif
+
+ return page;
}
diff --git a/gnome-initial-setup/pages/software/gis-software-page.h b/gnome-initial-setup/pages/software/gis-software-page.h
index 6bceda1..8d15245 100644
--- a/gnome-initial-setup/pages/software/gis-software-page.h
+++ b/gnome-initial-setup/pages/software/gis-software-page.h
@@ -50,7 +50,7 @@ struct _GisSoftwarePageClass
GType gis_software_page_get_type (void);
-void gis_prepare_software_page (GisDriver *driver);
+GisPage *gis_prepare_software_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.c b/gnome-initial-setup/pages/summary/gis-summary-page.c
index 4261b92..f510f2f 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -361,11 +361,10 @@ gis_summary_page_init (GisSummaryPage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_summary_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_SUMMARY_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_SUMMARY_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.h b/gnome-initial-setup/pages/summary/gis-summary-page.h
index 0fe2274..20190f1 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.h
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.h
@@ -48,7 +48,7 @@ struct _GisSummaryPageClass
GType gis_summary_page_get_type (void);
-void gis_prepare_summary_page (GisDriver *driver);
+GisPage *gis_prepare_summary_page (GisDriver *driver);
G_END_DECLS
diff --git a/gnome-initial-setup/pages/timezone/gis-timezone-page.c b/gnome-initial-setup/pages/timezone/gis-timezone-page.c
index a090db2..0775d98 100644
--- a/gnome-initial-setup/pages/timezone/gis-timezone-page.c
+++ b/gnome-initial-setup/pages/timezone/gis-timezone-page.c
@@ -462,11 +462,10 @@ gis_timezone_page_init (GisTimezonePage *page)
gtk_widget_init_template (GTK_WIDGET (page));
}
-void
+GisPage *
gis_prepare_timezone_page (GisDriver *driver)
{
- gis_driver_add_page (driver,
- g_object_new (GIS_TYPE_TIMEZONE_PAGE,
- "driver", driver,
- NULL));
+ return g_object_new (GIS_TYPE_TIMEZONE_PAGE,
+ "driver", driver,
+ NULL);
}
diff --git a/gnome-initial-setup/pages/timezone/gis-timezone-page.h b/gnome-initial-setup/pages/timezone/gis-timezone-page.h
index 5e75256..e9ba8ed 100644
--- a/gnome-initial-setup/pages/timezone/gis-timezone-page.h
+++ b/gnome-initial-setup/pages/timezone/gis-timezone-page.h
@@ -50,7 +50,7 @@ struct _GisTimezonePageClass
GType gis_timezone_page_get_type (void);
-void gis_prepare_timezone_page (GisDriver *driver);
+GisPage *gis_prepare_timezone_page (GisDriver *driver);
G_END_DECLS
--
2.14.3

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (gnome-initial-setup-3.28.0.tar.xz) = d6937b42c8e4188d7b1745977a769750c62444d0d7f2436aba36832bf559126edaf4d755452d897ea878e93ef4730bd9190011a12cfb0fb8fef07a6e5929e7da

3
vendor.conf Normal file
View File

@ -0,0 +1,3 @@
[pages]
skip=timezone
existing_user_only=language;keyboard