Upgrade to 3.27.90 and add reduce initial setup redundancy patches
This commit is contained in:
parent
b2d4761b01
commit
aba2fd8da7
1
.gitignore
vendored
1
.gitignore
vendored
@ -54,3 +54,4 @@
|
||||
/gnome-initial-setup-3.25.4.tar.xz
|
||||
/gnome-initial-setup-3.25.92.tar.xz
|
||||
/gnome-initial-setup-3.26.0.tar.xz
|
||||
/gnome-initial-setup-3.27.90.tar.xz
|
||||
|
98
enhanced-page-skipping.patch
Normal file
98
enhanced-page-skipping.patch
Normal file
@ -0,0 +1,98 @@
|
||||
From a477f87d4883c383dd8bac61193b81ad0d85a77c Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
||||
Date: Thu, 15 Feb 2018 21:12:08 -0600
|
||||
Subject: [PATCH 2/2] Allow skipping pages only in new/existing user modes
|
||||
|
||||
This makes the skip file a bit more powerful. Instead of specifying
|
||||
pages that will always be skipped, it's now possible to specify pages to
|
||||
be skipped in just new user mode or just existing user mode. This way we
|
||||
can hide pages that are redundant with distro installers in new user
|
||||
mode (firstboot), but still show them otherwise.
|
||||
|
||||
To skip a page always, like Endless has been doing, just put it in
|
||||
both sections.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=793501
|
||||
---
|
||||
gnome-initial-setup/gnome-initial-setup.c | 28 ++++++++++++++++------------
|
||||
1 file changed, 16 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c
|
||||
index 6cca10b..622fb82 100644
|
||||
--- a/gnome-initial-setup/gnome-initial-setup.c
|
||||
+++ b/gnome-initial-setup/gnome-initial-setup.c
|
||||
@@ -49,8 +49,9 @@
|
||||
#include "pages/password/gis-password-page.h"
|
||||
#include "pages/summary/gis-summary-page.h"
|
||||
|
||||
-#define VENDOR_PAGES_GROUP "pages"
|
||||
-#define VENDOR_PAGES_SKIP_KEY "skip"
|
||||
+#define VENDOR_NEW_USER_GROUP "new user"
|
||||
+#define VENDOR_EXISTING_USER_GROUP "existing user"
|
||||
+#define VENDOR_SKIP_KEY "skip"
|
||||
|
||||
static gboolean force_existing_user_mode;
|
||||
|
||||
@@ -101,20 +102,23 @@ should_skip_page (GisDriver *driver,
|
||||
}
|
||||
|
||||
static gchar **
|
||||
-pages_to_skip_from_file (void)
|
||||
+pages_to_skip_from_file (gboolean is_new_user)
|
||||
{
|
||||
GKeyFile *skip_pages_file;
|
||||
gchar **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:
|
||||
+ * options. This code will look for options under the "new user" and
|
||||
+ * "existing user" groups, and supports the following keys:
|
||||
* - skip (optional): list of pages to be skipped.
|
||||
*
|
||||
- * This is how this file would look on a vendor image:
|
||||
+ * This is how this file might look on a vendor image:
|
||||
*
|
||||
- * [pages]
|
||||
+ * [new user]
|
||||
+ * skip=language;keyboard
|
||||
+ *
|
||||
+ * [existing user]
|
||||
* skip=language
|
||||
*/
|
||||
skip_pages_file = g_key_file_new ();
|
||||
@@ -127,8 +131,9 @@ 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,
|
||||
+ is_new_user ? VENDOR_NEW_USER_GROUP : VENDOR_EXISTING_USER_GROUP,
|
||||
+ VENDOR_SKIP_KEY, NULL, NULL);
|
||||
|
||||
out:
|
||||
g_key_file_free (skip_pages_file);
|
||||
@@ -166,9 +171,6 @@ rebuild_pages_cb (GisDriver *driver)
|
||||
|
||||
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,6 +184,8 @@ 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;
|
||||
--
|
||||
2.14.3
|
||||
|
@ -5,14 +5,17 @@
|
||||
%global geoclue_version 2.3.1
|
||||
|
||||
Name: gnome-initial-setup
|
||||
Version: 3.26.0
|
||||
Release: 5%{?dist}
|
||||
Version: 3.27.90
|
||||
Release: 1%{?dist}
|
||||
Summary: Bootstrapping your OS
|
||||
|
||||
License: GPLv2+
|
||||
URL: https://wiki.gnome.org/Design/OS/InitialSetup
|
||||
Source0: https://download.gnome.org/sources/%{name}/3.26/%{name}-%{version}.tar.xz
|
||||
Source0: https://download.gnome.org/sources/%{name}/3.27/%{name}-%{version}.tar.xz
|
||||
Patch0: honor-firstboot-disabled.patch
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=793501
|
||||
Patch1: welcome-screen.patch
|
||||
Patch2: enhanced-page-skipping.patch
|
||||
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
@ -64,8 +67,7 @@ a good setup experience to welcome you to your system, and walks
|
||||
you through configuring it. It is integrated with gdm.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%configure --enable-software-sources
|
||||
@ -106,6 +108,9 @@ useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null ||
|
||||
%{_datadir}/polkit-1/rules.d/20-gnome-initial-setup.rules
|
||||
|
||||
%changelog
|
||||
* 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
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (gnome-initial-setup-3.26.0.tar.xz) = 5ed7a21e21cdcdc0f13d8d24acce1c0779d48bedac514642615b1df50340be9c8d0443c43396a0419d0b86ba97df391ce161dd03b1591ef6d73fb5318ffd06c1
|
||||
SHA512 (gnome-initial-setup-3.27.90.tar.xz) = e3e0ee598df9b57380fd2eeb30a2f45135b9aa7c002c1be1c9dd2c37a1cef97645089794541d08bd3254d8852a7b8cd118529fcdd25418a2f44d9a87f398fb91
|
||||
|
233
welcome-screen.patch
Normal file
233
welcome-screen.patch
Normal file
@ -0,0 +1,233 @@
|
||||
From 19fe2ffa60b4998be6a77c69e449b30c2df99fb1 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
||||
Date: Thu, 15 Feb 2018 21:08:38 -0600
|
||||
Subject: [PATCH 1/2] Show welcome screen if language page is skipped
|
||||
|
||||
We can't *really* skip the language page, because we need to display some
|
||||
sort of welcome screen. In this case, let's just hide the language
|
||||
selection element. To make this look decent, the icon needs to be a bit
|
||||
bigger, and we need to center everything. Turns out, these changes look
|
||||
fine even when the language page is not skipped, so they don't need to
|
||||
be conditional on that.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=793501
|
||||
---
|
||||
gnome-initial-setup/gnome-initial-setup.c | 7 +-
|
||||
.../pages/language/gis-language-page.c | 113 +++++++++++++++++----
|
||||
.../pages/language/gis-language-page.h | 1 +
|
||||
.../pages/language/gis-language-page.ui | 6 +-
|
||||
4 files changed, 102 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c
|
||||
index 5671cae..6cca10b 100644
|
||||
--- a/gnome-initial-setup/gnome-initial-setup.c
|
||||
+++ b/gnome-initial-setup/gnome-initial-setup.c
|
||||
@@ -186,8 +186,13 @@ rebuild_pages_cb (GisDriver *driver)
|
||||
if (page_data->new_user_only && !is_new_user)
|
||||
continue;
|
||||
|
||||
- if (should_skip_page (driver, page_data->page_id, skip_pages))
|
||||
+ if (should_skip_page (driver, page_data->page_id, skip_pages)) {
|
||||
+ /* Language page is special, because we always want to show the greeeting
|
||||
+ * even if this page is to be skipped. */
|
||||
+ if (strcmp (page_data->page_id, "language") == 0)
|
||||
+ gis_prepare_language_page_without_language_selection (driver);
|
||||
continue;
|
||||
+ }
|
||||
|
||||
page_data->prepare_page_func (driver);
|
||||
}
|
||||
diff --git a/gnome-initial-setup/pages/language/gis-language-page.c b/gnome-initial-setup/pages/language/gis-language-page.c
|
||||
index ea94c82..2349103 100644
|
||||
--- a/gnome-initial-setup/pages/language/gis-language-page.c
|
||||
+++ b/gnome-initial-setup/pages/language/gis-language-page.c
|
||||
@@ -45,6 +45,7 @@ struct _GisLanguagePagePrivate
|
||||
GtkWidget *logo;
|
||||
GtkWidget *welcome_widget;
|
||||
GtkWidget *language_chooser;
|
||||
+ gboolean show_language_chooser;
|
||||
|
||||
GDBusProxy *localed;
|
||||
GPermission *permission;
|
||||
@@ -56,6 +57,53 @@ typedef struct _GisLanguagePagePrivate GisLanguagePagePrivate;
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GisLanguagePage, gis_language_page, GIS_TYPE_PAGE);
|
||||
|
||||
+enum
|
||||
+{
|
||||
+ PROP_0,
|
||||
+ PROP_SHOW_LANGUAGE_CHOOSER,
|
||||
+ PROP_LAST,
|
||||
+};
|
||||
+
|
||||
+static GParamSpec *obj_props[PROP_LAST];
|
||||
+
|
||||
+static void
|
||||
+gis_language_page_get_property (GObject *object,
|
||||
+ guint prop_id,
|
||||
+ GValue *value,
|
||||
+ GParamSpec *pspec)
|
||||
+{
|
||||
+ GisLanguagePage *page = GIS_LANGUAGE_PAGE (object);
|
||||
+ GisLanguagePagePrivate *priv = gis_language_page_get_instance_private (page);
|
||||
+ switch (prop_id)
|
||||
+ {
|
||||
+ case PROP_SHOW_LANGUAGE_CHOOSER:
|
||||
+ g_value_set_boolean (value, priv->show_language_chooser);
|
||||
+ break;
|
||||
+ default:
|
||||
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+gis_language_page_set_property (GObject *object,
|
||||
+ guint prop_id,
|
||||
+ const GValue *value,
|
||||
+ GParamSpec *pspec)
|
||||
+{
|
||||
+ GisLanguagePage *page = GIS_LANGUAGE_PAGE (object);
|
||||
+ GisLanguagePagePrivate *priv = gis_language_page_get_instance_private (page);
|
||||
+ switch (prop_id)
|
||||
+ {
|
||||
+ case PROP_SHOW_LANGUAGE_CHOOSER:
|
||||
+ priv->show_language_chooser = g_value_get_boolean (value);
|
||||
+ break;
|
||||
+ default:
|
||||
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void
|
||||
set_localed_locale (GisLanguagePage *self)
|
||||
{
|
||||
@@ -259,28 +307,33 @@ gis_language_page_constructed (GObject *object)
|
||||
|
||||
update_distro_logo (page);
|
||||
|
||||
- g_signal_connect (priv->language_chooser, "notify::language",
|
||||
- G_CALLBACK (language_changed), page);
|
||||
- g_signal_connect (priv->language_chooser, "confirm",
|
||||
- G_CALLBACK (language_confirmed), page);
|
||||
-
|
||||
- /* If we're in new user mode then we're manipulating system settings */
|
||||
- if (gis_driver_get_mode (GIS_PAGE (page)->driver) == GIS_DRIVER_MODE_NEW_USER)
|
||||
+ if (priv->show_language_chooser)
|
||||
{
|
||||
- priv->permission = polkit_permission_new_sync ("org.freedesktop.locale1.set-locale", NULL, NULL, NULL);
|
||||
-
|
||||
- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
|
||||
- g_dbus_proxy_new (bus,
|
||||
- G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES,
|
||||
- NULL,
|
||||
- "org.freedesktop.locale1",
|
||||
- "/org/freedesktop/locale1",
|
||||
- "org.freedesktop.locale1",
|
||||
- priv->cancellable,
|
||||
- (GAsyncReadyCallback) localed_proxy_ready,
|
||||
- object);
|
||||
- g_object_unref (bus);
|
||||
- }
|
||||
+ 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",
|
||||
+ G_CALLBACK (language_confirmed), page);
|
||||
+
|
||||
+ /* If we're in new user mode then we're manipulating system settings */
|
||||
+ if (gis_driver_get_mode (GIS_PAGE (page)->driver) == GIS_DRIVER_MODE_NEW_USER)
|
||||
+ {
|
||||
+ priv->permission = polkit_permission_new_sync ("org.freedesktop.locale1.set-locale", NULL, NULL, NULL);
|
||||
+
|
||||
+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
|
||||
+ g_dbus_proxy_new (bus,
|
||||
+ G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES,
|
||||
+ NULL,
|
||||
+ "org.freedesktop.locale1",
|
||||
+ "/org/freedesktop/locale1",
|
||||
+ "org.freedesktop.locale1",
|
||||
+ priv->cancellable,
|
||||
+ (GAsyncReadyCallback) localed_proxy_ready,
|
||||
+ object);
|
||||
+ g_object_unref (bus);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
gis_page_set_complete (GIS_PAGE (page), TRUE);
|
||||
gtk_widget_show (GTK_WIDGET (page));
|
||||
@@ -321,6 +374,14 @@ gis_language_page_class_init (GisLanguagePageClass *klass)
|
||||
page_class->locale_changed = gis_language_page_locale_changed;
|
||||
object_class->constructed = gis_language_page_constructed;
|
||||
object_class->dispose = gis_language_page_dispose;
|
||||
+ object_class->get_property = gis_language_page_get_property;
|
||||
+ object_class->set_property = gis_language_page_set_property;
|
||||
+
|
||||
+ obj_props[PROP_SHOW_LANGUAGE_CHOOSER] =
|
||||
+ g_param_spec_boolean ("show-language-chooser", "", "", TRUE,
|
||||
+ G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
|
||||
+
|
||||
+ g_object_class_install_properties (object_class, PROP_LAST, obj_props);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -341,3 +402,13 @@ gis_prepare_language_page (GisDriver *driver)
|
||||
"driver", driver,
|
||||
NULL));
|
||||
}
|
||||
+
|
||||
+void
|
||||
+gis_prepare_language_page_without_language_selection (GisDriver *driver)
|
||||
+{
|
||||
+ gis_driver_add_page (driver,
|
||||
+ g_object_new (GIS_TYPE_LANGUAGE_PAGE,
|
||||
+ "driver", driver,
|
||||
+ "show-language-chooser", FALSE,
|
||||
+ 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..a3a30f3 100644
|
||||
--- a/gnome-initial-setup/pages/language/gis-language-page.h
|
||||
+++ b/gnome-initial-setup/pages/language/gis-language-page.h
|
||||
@@ -51,6 +51,7 @@ struct _GisLanguagePageClass
|
||||
GType gis_language_page_get_type (void);
|
||||
|
||||
void gis_prepare_language_page (GisDriver *driver);
|
||||
+void 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..50605a3 100644
|
||||
--- a/gnome-initial-setup/pages/language/gis-language-page.ui
|
||||
+++ b/gnome-initial-setup/pages/language/gis-language-page.ui
|
||||
@@ -7,13 +7,13 @@
|
||||
<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"/>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_top">24</property>
|
||||
- <property name="pixel_size">96</property>
|
||||
+ <property name="pixel_size">128</property>
|
||||
<property name="icon_name">start-here-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -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>
|
||||
--
|
||||
2.14.3
|
||||
|
Loading…
Reference in New Issue
Block a user