Compare commits

...

No commits in common. "c8" and "a10s" have entirely different histories.
c8 ... a10s

17 changed files with 5496 additions and 19888 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gnome-initial-setup-3.28.0.tar.xz
/gnome-initial-setup-*.tar.xz

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +0,0 @@
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

@ -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);
}

View File

@ -1,200 +0,0 @@
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

View File

@ -1,88 +0,0 @@
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

View File

@ -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);
}

View File

@ -1,974 +0,0 @@
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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,147 +1,236 @@
%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
* Fri May 27 2022 David King <amigadave@amigadave.com> - 42.2-1
- Update to 42.2
Name: gnome-initial-setup
Version: 3.28.0
Release: 11%{?dist}
Summary: Bootstrapping your OS
* Thu Apr 21 2022 David King <amigadave@amigadave.com> - 42.1.1-1
- Update to 42.1.1
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
# https://bugzilla.redhat.com/show_bug.cgi?id=2097848
Patch6: timezones.patch
* Wed Apr 06 2022 David King <amigadave@amigadave.com> - 42.1-1
- Update to 42.1
BuildRequires: git
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
* Thu Mar 24 2022 David King <amigadave@amigadave.com> - 42.0.1-1
- Update to 42.0.1
# 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
* Wed Mar 23 2022 Adam Williamson <awilliam@redhat.com> - 42.0-3
- Backport proposed upstream fix for keyring issue (#2066424)
Requires(pre): shadow-utils
* Mon Mar 21 2022 Adam Williamson <awilliam@redhat.com> - 42.0-2
- Revert dark theme support to fix user keyring password (#2066424)
Provides: user(%name)
* Fri Mar 18 2022 David King <amigadave@amigadave.com> - 42.0-1
- Update to 42.0
%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.
* Mon Mar 07 2022 David King <amigadave@amigadave.com> - 42~rc-1
- Update to 42.rc
%prep
%autosetup -p1 -Sgit
* Sun Feb 13 2022 David King <amigadave@amigadave.com> - 42~beta-1
- Update to 42.beta
%build
# patches touch am files
autoreconf -i
%configure \
--enable-software-sources \
--with-vendor-conf-file=%{_datadir}/gnome-initial-setup/vendor.conf
make %{?_smp_mflags}
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 42~alpha.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
%install
%make_install
find %{buildroot} -name '*.la' -exec rm -f {} ';'
* Wed Jan 12 2022 David King <amigadave@amigadave.com> - 42~alpha.1-2
- Rebuild against gnome-desktop4
# 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
* Wed Jan 12 2022 David King <amigadave@amigadave.com> - 42~alpha.1-1
- Update to 42.alpha.1
mkdir -p %{buildroot}%{_datadir}/gnome-initial-setup
cp %{SOURCE1} %{buildroot}%{_datadir}/gnome-initial-setup/
* Tue Dec 07 2021 Kalev Lember <klember@redhat.com> - 41.2-1
- Update to 41.2
%find_lang %{name}
* Fri Sep 17 2021 Kalev Lember <klember@redhat.com> - 41.0-1
- Update to 41.0
%pre
useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null || :
* Tue Sep 14 2021 Kalev Lember <klember@redhat.com> - 41~rc-3
- Disable parental controls support as per Workstation WG decision (#2004259)
%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
* Tue Sep 14 2021 Michael Catanzaro <mcatanzaro@redhat.com> - 41~rc-2
- Fix new Fedora third party software page
%{_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
* Wed Sep 08 2021 Kalev Lember <klember@redhat.com> - 41~rc-1
- Update to 41.rc
%dir %{_datadir}/gnome-initial-setup
%{_datadir}/gnome-initial-setup/vendor.conf
* Tue Aug 24 2021 Kalev Lember <klember@redhat.com> - 41~beta-3
- Rebuild
%changelog
* Tue Jun 21 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 3.28.0-11
- Remove timezone boundaries
Related: #2097849
* Tue Nov 23 2021 David King <dking@redhat.com> - 3.28.0-10
- Fix missing icon for legacy faces (#1838088)
* Tue Aug 24 2021 Kalev Lember <klember@redhat.com> - 41~beta-2
- Enable parental controls support
* Mon Oct 19 2020 David King <dking@redhat.com> - 3.28.0-9
- Fix Japanese language default (#1703333)
* Tue Aug 24 2021 Kalev Lember <klember@redhat.com> - 41~beta-1.1
- Fix the polkit rule for Fedora third party setup (#1996901)
* Mon Feb 18 2019 Ray Strode <rstrode@redhat.com> - 3.28.0-8
- Ensure vendora logo gets used instead of foot
Resolves: #1655150
* Mon Aug 23 2021 Kalev Lember <klember@redhat.com> - 41~beta-1
- Update to 41.beta
* Fri Aug 06 2021 Michael Catanzaro <mcatanzaro@redhat.com> - 41~alpha-2
- Add enterprise login patch, first user should be a local admin
* Tue Aug 03 2021 Kalev Lember <klember@redhat.com> - 41~alpha-1
- Update to 41.alpha
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 40.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jun 21 2021 Kalev Lember <klember@redhat.com> - 40.2-1
- Update to 40.2
* Wed May 05 2021 Kalev Lember <klember@redhat.com> - 40.1-1
- Update to 40.1
* Fri Apr 30 2021 Kalev Lember <klember@redhat.com> - 40.0-2
- Drop gnome-tour dep here and move it to gnome-shell instead (#1955179)
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 40.0-1
- Update to 40.0
* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 40~rc-1
- Update to 40.rc
* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 40~beta-1
- Update to 40.beta
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.38.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Jan 16 2021 Kalev Lember <klember@redhat.com> - 3.38.3-1
- Update to 3.38.3
* Wed Nov 25 2020 Kalev Lember <klember@redhat.com> - 3.38.2-1
- Update to 3.38.2
* Mon Oct 5 2020 Kalev Lember <klember@redhat.com> - 3.38.1-1
- Update to 3.38.1
* Fri Sep 11 2020 Ray Strode <rstrode@redhat.com> - 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 <klember@redhat.com> - 3.38.0-1
- Update to 3.38.0
* Sun Sep 06 2020 Kalev Lember <klember@redhat.com> - 3.37.92-1
- Update to 3.37.92
- Drop upstreamed honor-firstboot-disabled.patch
* Thu Aug 27 2020 Kalev Lember <klember@redhat.com> - 3.37.91.1-2
- Require new gnome-tour package (#1873206)
* Mon Aug 24 2020 Kalev Lember <klember@redhat.com> - 3.37.91.1-1
- Update to 3.37.91.1
- Rebase honor-firstboot-disabled.patch
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.37.91-1
- Update to 3.37.91
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 20 2020 Kalev Lember <klember@redhat.com> - 3.37.3-1
- Update to 3.37.3
* Tue Jun 23 2020 Adam Williamson <awilliam@redhat.com> - 3.37.1-3
- Backport MR #89 to fix 'disabled' timezone page setting timezone
* Mon May 04 2020 Adam Williamson <awilliam@redhat.com> - 3.37.1-2
- Backport MR #83 to fix preselection of input methods
* Thu Apr 30 2020 Kalev Lember <klember@redhat.com> - 3.37.1-1
- Update to 3.37.1
* Mon Apr 27 2020 Kalev Lember <klember@redhat.com> - 3.36.2-1
- Update to 3.36.2
* Sat Mar 28 2020 Kalev Lember <klember@redhat.com> - 3.36.1-1
- Update to 3.36.1
* Fri Mar 06 2020 Kalev Lember <klember@redhat.com> - 3.36.0-1
- Update to 3.36.0
* Mon Mar 02 2020 Kalev Lember <klember@redhat.com> - 3.35.92-1
- Update to 3.35.92
* Mon Feb 17 2020 Kalev Lember <klember@redhat.com> - 3.35.91-1
- Update to 3.35.91
* Tue Feb 04 2020 Kalev Lember <klember@redhat.com> - 3.35.90-1
- Update to 3.35.90
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.35.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 16 2020 Kalev Lember <klember@redhat.com> - 3.35.3-2
- Rebuilt for libgnome-desktop soname bump
* Tue Jan 07 2020 Kalev Lember <klember@redhat.com> - 3.35.3-1
- Update to 3.35.3
* Tue Jan 07 2020 Kalev Lember <klember@redhat.com> - 3.34.3-1
- Update to 3.34.3
* Mon Oct 07 2019 Kalev Lember <klember@redhat.com> - 3.34.1-1
- Update to 3.34.1
* Mon Sep 09 2019 Benjamin Berg <bberg@redhat.com> - 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 <klember@redhat.com> - 3.34.0-1
- Update to 3.34.0
* Wed Sep 04 2019 Benjamin Berg <bberg@redhat.com> - 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 <klember@redhat.com> - 3.33.92-1
- Update to 3.33.92
* Tue Aug 20 2019 Kalev Lember <klember@redhat.com> - 3.33.91-1
- Update to 3.33.91
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.33.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jul 21 2019 Kalev Lember <klember@redhat.com> - 3.33.4-2
- Rebuilt for libgnome-desktop soname bump
* Mon Jul 15 2019 Kalev Lember <klember@redhat.com> - 3.33.4-1
- Update to 3.33.4
* Mon Jul 08 2019 Kalev Lember <klember@redhat.com> - 3.33.2-2
- Rebuilt for libgweather soname bump
* Tue May 21 2019 Kalev Lember <klember@redhat.com> - 3.33.2-1
- Update to 3.33.2
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 3.32.1-2
- Rebuild with Meson fix for #1699099
* Sat Apr 06 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Thu Apr 04 2019 Ray Strode <rstrode@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.30.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Sep 22 2018 Kalev Lember <klember@redhat.com> - 3.30.0-1
- Update to 3.30.0
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 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
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Apr 30 2018 Adam Williamson <awilliam@redhat.com> - 3.28.0-7
- Drop unnecessary pkgconfig(NetworkManager) BuildRequire

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

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

@ -0,0 +1,281 @@
%global nm_version 1.2
%global nma_version 1.0
%global glib_required_version 2.63.1
%global gtk_required_version 4.6
%global geoclue_version 2.3.1
%global gnome_desktop_version 44.0-7
%global tarball_version %%(echo %{version} | tr '~' '.')
%if 0%{?rhel}
%bcond_with webkitgtk
%else
%bcond_without webkitgtk
%endif
Name: gnome-initial-setup
Version: 46.alpha
Release: 10%{?dist}.alma.1
Summary: Bootstrapping your OS
License: GPL-2.0-or-later
URL: https://wiki.gnome.org/Design/OS/InitialSetup
Source0: https://download.gnome.org/sources/%{name}/46/%{name}-%{tarball_version}.tar.xz
Source1: vendor.conf
# https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/merge_requests/200
Patch: live-user-mode.patch
%if 0%{!?almalinux}
# Downstream branding
Patch: 0001-RHEL10-style-illustrations.patch
%endif
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: meson
BuildRequires: pkgconfig(accountsservice)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdm)
BuildRequires: pkgconfig(geocode-glib-2.0)
BuildRequires: pkgconfig(gio-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib_required_version}
BuildRequires: pkgconfig(gnome-desktop-4)
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gtk4) >= %{gtk_required_version}
BuildRequires: pkgconfig(gweather4)
BuildRequires: pkgconfig(ibus-1.0)
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libgeoclue-2.0) >= %{geoclue_version}
BuildRequires: pkgconfig(libnma-gtk4) >= %{nma_version}
BuildRequires: pkgconfig(libnm) >= %{nm_version}
BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(packagekit-glib2)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(polkit-gobject-1)
BuildRequires: pkgconfig(pwquality)
BuildRequires: pkgconfig(rest-1.0)
%if %{with webkitgtk}
BuildRequires: pkgconfig(webkitgtk-6.0)
%endif
# gnome-initial-setup is being run by gdm
Requires: gdm
Requires: geoclue2-libs%{?_isa} >= %{geoclue_version}
Requires: glib2%{?_isa} >= %{glib_required_version}
Requires: gnome-desktop4%{?_isa} >= %{gnome_desktop_version}
# we install a rules file
Requires: polkit-js-engine
Requires: /usr/bin/tecla
Requires(pre): shadow-utils
Provides: user(%name)
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
%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 -n %{name}-%{tarball_version}
%build
%meson \
-Dparental_controls=disabled \
%if !%{with webkitgtk}
-Dwebkitgtk=disabled \
%endif
%{nil}
%meson_build
%install
%meson_install
desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/gnome-initial-setup-copy-worker.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/
%find_lang %{name}
%pre
# we do not use sysusers yet because we need /var/lib/gnome-initial-setup
# to be owned by the gnome-initial-setup user. please do not convert
# to sysusers without making sure this is handled, maybe by tmpfiles
useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null || :
%files -f %{name}.lang
%license COPYING
%doc NEWS README.md
%attr(-, gnome-initial-setup, gnome-initial-setup) %dir %{_localstatedir}/lib/gnome-initial-setup
%ghost %{_localstatedir}/gnome-initial-setup/state
%{_libexecdir}/gnome-initial-setup
%{_libexecdir}/gnome-initial-setup-copy-worker
%{_sysconfdir}/xdg/autostart/gnome-initial-setup-copy-worker.desktop
%{_sysconfdir}/xdg/autostart/gnome-initial-setup-first-login.desktop
%{_datadir}/applications/gnome-initial-setup.desktop
%{_datadir}/dconf/profile/gnome-initial-setup
%dir %{_datadir}/gnome-initial-setup
%{_datadir}/gnome-initial-setup/initial-setup-dconf-defaults
%{_datadir}/gnome-initial-setup/vendor.conf
%{_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
%{_sysusersdir}/gnome-initial-setup.conf
%{_userunitdir}/*
%changelog
* Thu Sep 19 2024 Eduard ABdullin <eabdullin@almalinux.org> - 46.alpha-10.alma.1
- Dont apply the RHEL patch on AlmaLinux
* Tue Aug 20 2024 Tomas Popela <tpopela@redhat.com> - 46.alpha-10
- Use branded illustrations
* Thu Aug 08 2024 Tomas Pelka <tpelka@redhat.com> - 46.alpha-9
- Add gating.yaml via API
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 46.alpha-8
- Bump release for June 2024 mass rebuild
* Wed Feb 07 2024 Adam Williamson <awilliam@redhat.com> - 46.alpha-7
- Revert "Use upstream sysusers configuration"
* Mon Jan 22 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 46.alpha-6
- Update live-user-mode.patch again
* Fri Jan 19 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 46.alpha-5
- Update live-user-mode patch
* Thu Jan 18 2024 David King <amigadave@amigadave.com> - 46.alpha-4
- Use upstream sysusers configuration
* Wed Jan 17 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 46.alpha-3
- ExcludeArch i686
* Wed Jan 17 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 46.alpha-2
- Fix URL
* Wed Jan 17 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 46.alpha-1
- Update to 46.alpha
* Tue Sep 19 2023 Ray Strode <rstrode@redhat.com> - 45.0-3
- Fix failure from bug in back button patch
* Tue Sep 19 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 45.0-2
- Update to 45.0 and refresh live user mode patchset
* Tue Sep 19 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 45.0-1
- Update to 45.0
* Mon Sep 11 2023 Ray Strode <rstrode@redhat.com> - 45~beta-13
- Fix crash in new user mode
* Sat Sep 09 2023 Ray Strode <rstrode@redhat.com> - 45~beta-12
- Add missing patches
* Sat Sep 09 2023 Ray Strode <rstrode@redhat.com> - 45~beta-11
- Select US by default on Russian keyboards
* Fri Sep 08 2023 Ray Strode <rstrode@redhat.com> - 45~beta-10
- drop unused patches
* Fri Sep 08 2023 Ray Strode <rstrode@redhat.com> - 45~beta-9
- Don't let language page proceed until it has committed its changes
* Thu Sep 07 2023 Ray Strode <rstrode@redhat.com> - 45~beta-8
- Fix keyboard page next button that can't be buttoned
* Mon Aug 28 2023 Ray Strode <rstrode@redhat.com> - 45~beta-7
- More keyboard configuration updates
* Sat Aug 26 2023 Ray Strode <rstrode@redhat.com> - 45~beta-6
- Update to use slightly tweaked default input sources api from gnome-
desktop
* Sat Aug 26 2023 Ray Strode <rstrode@redhat.com> - 45~beta-5
- Clean up gnome-desktop requires
* Sat Aug 26 2023 Ray Strode <rstrode@redhat.com> - 45~beta-4
- Add keyboard and input method handling fixes
* Mon Aug 21 2023 Ray Strode <rstrode@redhat.com> - 45~beta-3
- Add liveuser mode and switch vendor.conf to accomodate it
* Mon Aug 07 2023 Kalev Lember <klember@redhat.com> - 45~beta-2
- Sort files list
* Mon Aug 07 2023 Kalev Lember <klember@redhat.com> - 45~beta-1
- Update to 45.beta
- Requiring tecla instead of gkbd-keyboard-display
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 44.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Mar 23 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 44.0-2
- Add patch to stop calling 'fedora-third-party disable'
* Fri Mar 17 2023 David King <amigadave@amigadave.com> - 44.0-1
- Update to 44.0
* Thu Mar 09 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 44~rc-2
- Rebuild for WebKitGTK 2.39.91
* Sat Mar 04 2023 David King <amigadave@amigadave.com> - 44~rc-1
- Update to 44.rc
* Wed Feb 22 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 44~beta-2
- Rebuild for WebKitGTK 2.39.90
* Wed Feb 15 2023 David King <amigadave@amigadave.com> - 44~beta-1
- Update to 44.beta
* Mon Feb 06 2023 David King <amigadave@amigadave.com> - 44~alpha.2-1
- Update to 44.alpha.2
* Wed Feb 01 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 43.1-6
- Rebuild for WebKitGTK 2.39.6/2.39.7
* Sat Jan 21 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 43.1-5
- Build for WebKitGTK 2.39.5
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 43.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Dec 06 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 43.1-3
- Fix WebKitGTK build dependency
* Mon Dec 05 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 43.1-2
- Build against webkitgtk-6.0
* Thu Oct 27 2022 David King <amigadave@amigadave.com> - 43.1-1
- Update to 43.1
* Wed Sep 21 2022 Kalev Lember <klember@redhat.com> - 43.0-3
- Fix a few more issues with enterprise login
* Fri Sep 16 2022 Kalev Lember <klember@redhat.com> - 43.0-2
- Fix criticals when setting up enterprise login
* Fri Sep 16 2022 Kalev Lember <klember@redhat.com> - 43.0-1
- Update to 43.0
* Wed Sep 07 2022 Kalev Lember <klember@redhat.com> - 43~rc.1-1
- Update to 43.rc.1
* Tue Sep 06 2022 Kalev Lember <klember@redhat.com> - 43~rc-3
- Backport an upstream patch to fix the enterprise login dialog
* Tue Sep 06 2022 Kalev Lember <klember@redhat.com> - 43~rc-2
- Drop obsolete libhandy dep
* Tue Sep 06 2022 Kalev Lember <klember@redhat.com> - 43~rc-1
- Update to 43.rc

2870
live-user-mode.patch Normal file

File diff suppressed because it is too large Load Diff

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (gnome-initial-setup-46.alpha.tar.xz) = dcd1aa67805e0db70de0bb8dc529c08a691e229c14135fa1ef4a454ee735c6552614e03815d655392bf2714fa5edca9c74fe7286fac4128beb669169afb73c1d

5
vendor.conf Normal file
View File

@ -0,0 +1,5 @@
[live_user pages]
skip=privacy;timezone;software;goa;network;
[install]
application=anaconda.desktop