Skip to content
Commits on Source (103)
image: registry.gitlab.gnome.org/gnome/gnome-initial-setup/fedora:v1
stages:
- build
.job_template: &job_definition
stage: build
script:
# In general, we would like warnings to be fatal. However, code copied from
# gnome-control-center uses many deprecated functions. Until we have a good
# answer to sharing that code (#68), make those warnings non-fatal.
- meson -Dsystemd=${EXPLICIT_FEATURES}
--auto-features ${AUTO_FEATURES}
${OPTIONS}
-Dwerror=true -Dc_args=-Wno-error=deprecated-declarations
${EXTRA_PARAMETERS}
_build .
- cd _build
- ninja -v
# Check that strings can be extracted
- ninja -v gnome-initial-setup-pot
# Check the package can be installed
- DESTDIR=$(mktemp -d) ninja -v install
- meson test
artifacts:
when: on_failure
name: "gnome-initial-setup-${CI_COMMIT_REF_NAME}-${CI_JOB_NAME}"
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
build-minimal:
<<: *job_definition
variables:
EXPLICIT_FEATURES: 'false'
AUTO_FEATURES: 'disabled'
OPTIONS: ''
build-maximal:
<<: *job_definition
variables:
EXPLICIT_FEATURES: 'true'
AUTO_FEATURES: 'enabled'
OPTIONS: '-Dvendor-conf-file=/var/lib/weird-vendor-specific-path.ini'
FROM registry.fedoraproject.org/fedora:33
# Malcontent is in updates-testing as of 2020-01-12
RUN dnf -y install --enablerepo=updates-testing \
ccache \
desktop-file-utils \
gcc \
gettext \
git \
gobject-introspection-devel \
gtk-doc \
ibus-devel \
intltool \
krb5-devel \
libpwquality-devel \
libsecret-devel \
meson \
ninja-build \
"pkgconfig(accountsservice)" \
"pkgconfig(cheese)" \
"pkgconfig(cheese-gtk)" \
"pkgconfig(flatpak)" \
"pkgconfig(fontconfig)" \
"pkgconfig(gdm)" \
"pkgconfig(geocode-glib-1.0)" \
"pkgconfig(gio-2.0)" \
"pkgconfig(gio-unix-2.0)" \
"pkgconfig(glib-2.0)" \
"pkgconfig(gnome-desktop-3.0)" \
"pkgconfig(goa-1.0)" \
"pkgconfig(goa-backend-1.0)" \
"pkgconfig(gstreamer-1.0)" \
"pkgconfig(gtk+-3.0)" \
"pkgconfig(gweather-3.0)" \
"pkgconfig(libgeoclue-2.0)" \
"pkgconfig(libnm)" \
"pkgconfig(libnma)" \
"pkgconfig(malcontent-ui-0)" \
"pkgconfig(webkit2gtk-4.0)" \
polkit-devel \
rest-devel \
&& dnf clean all
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
USER user
WORKDIR /home/user
ENV LANG C.utf8
ENV PATH="/usr/lib64/ccache:${PATH}"
#!/bin/bash
read_arg() {
# $1 = arg name
# $2 = arg value
# $3 = arg parameter
local rematch='^[^=]*=(.*)$'
if [[ $2 =~ $rematch ]]; then
read "$1" <<< "${BASH_REMATCH[1]}"
else
read "$1" <<< "$3"
# There is no way to shift our callers args, so
# return 1 to indicate they should do it instead.
return 1
fi
}
set -e
build=0
run=0
push=0
list=0
print_help=0
no_login=0
while (($# > 0)); do
case "${1%%=*}" in
build) build=1;;
run) run=1;;
push) push=1;;
list) list=1;;
help|--help|-h) print_help=1;;
--base|-b) read_arg base "$@" || shift;;
--base-version) read_arg base_version "$@" || shift;;
--no-login) no_login=1;;
*) echo -e "\e[1;31mERROR\e[0m: Unknown option '$1'"; exit 1;;
esac
shift
done
if [ $print_help == 1 ]; then
echo "$0 - Build and run Docker images"
echo ""
echo "Usage: $0 <command> [options] [basename]"
echo ""
echo "Available commands"
echo ""
echo " build --base=<BASENAME> - Build Docker image <BASENAME>.Dockerfile"
echo " run --base=<BASENAME> - Run Docker image <BASENAME>"
echo " push --base=<BASENAME> - Push Docker image <BASENAME> to the registry"
echo " list - List available images"
echo " help - This help message"
echo ""
exit 0
fi
cd "$(dirname "$0")"
if [ $list == 1 ]; then
echo "Available Docker images:"
for f in *.Dockerfile; do
filename=$( basename -- "$f" )
basename="${filename%.*}"
echo -e " \e[1;39m$basename\e[0m"
done
exit 0
fi
# All commands after this require --base to be set
if [ -z $base ]; then
echo "Usage: $0 <command> --base=<BASENAME>"
exit 1
fi
if [ ! -f "$base.Dockerfile" ]; then
echo -e "\e[1;31mERROR\e[0m: Dockerfile for '$base' not found"
exit 1
fi
if [ -z $base_version ]; then
base_version="latest"
else
base_version="v$base_version"
fi
if [ ! -x "$(command -v docker)" ] || (docker --help |& grep -q podman); then
# Docker is actually implemented by podman, and its OCI output
# is incompatible with some of the dockerd instances on GitLab
# CI runners.
echo "Using: Podman"
format="--format docker"
CMD="podman"
else
echo "Using: Docker"
format=""
CMD="sudo docker"
fi
REGISTRY="registry.gitlab.gnome.org"
TAG="${REGISTRY}/gnome/gnome-initial-setup/${base}:${base_version}"
if [ $build == 1 ]; then
echo -e "\e[1;32mBUILDING\e[0m: ${base} as ${TAG}"
${CMD} build \
${format} \
--build-arg HOST_USER_ID="$UID" \
--tag "${TAG}" \
--file "${base}.Dockerfile" .
exit $?
fi
if [ $push == 1 ]; then
echo -e "\e[1;32mPUSHING\e[0m: ${base} as ${TAG}"
if [ $no_login == 0 ]; then
${CMD} login ${REGISTRY}
fi
${CMD} push ${TAG}
exit $?
fi
if [ $run == 1 ]; then
echo -e "\e[1;32mRUNNING\e[0m: ${base} as ${TAG}"
${CMD} run \
--rm \
--volume "$(pwd)/..:/home/user/app" \
--workdir "/home/user/app" \
--tty \
--interactive "${TAG}" \
bash
exit $?
fi
40.4
41.0
----
* Bugs fixed:
- !124 software: call fedora-third-party properly
* Translation updates:
- Croatian
- Danish
- Hungarian
- Polish
- Turkish
41.rc
-----
* Bugs fixed:
- !123 Fix the polkit rule for Fedora third party setup
* Translation updates:
- Basque
- Chinese (China)
- Czech
- Dutch
- English (United Kingdom)
- Finnish
- French
- Galician
- German
- Greek, Modern (1453-)
- Hebrew
- Indonesian
- Kazakh
- Korean
- Lithuanian
- Occitan (post 1500)
- Persian
- Portuguese (Brazil)
- Romanian
- Russian
- Spanish
- Swedish
41.beta
-------
* The Software page, which allows the user to enable or disable third-party
repositories, has been resurrected. It is currently Fedora-specific. Patches
welcome for other distro families. (!121)
* Bugs fixed:
- #80 Cannot login as administrator if you set up enterprise login in gnome-initial-setup
* Translation updates:
- Bulgarian
- Catalan
- Portuguese
- Slovenian
- Ukrainian
41.alpha
--------
* Several core classes have been updated to use modern GLib niceties.
* Bugs fixed:
- !119 timezone: fix critical on startup when geoclue is disabled
* Translation updates:
- Chinese (China)
- Russian
40.3
----
......
......@@ -15,7 +15,8 @@ polkit.addRule(function(action, subject) {
action.id.indexOf('org.freedesktop.accounts.') === 0 ||
action.id.indexOf('org.freedesktop.timedate1.') === 0 ||
action.id.indexOf('org.freedesktop.realmd.') === 0 ||
action.id.indexOf('com.endlessm.ParentalControls.') === 0);
action.id.indexOf('com.endlessm.ParentalControls.') === 0 ||
action.id.indexOf('org.fedoraproject.thirdparty.') === 0);
if (actionMatches) {
if (subject.local)
......
......@@ -59,10 +59,11 @@ i18n.merge_file(
type: 'desktop'
)
if enable_systemd
unitconf = configuration_data()
unitconf.set('libexecdir', libexec_dir)
data_conf = configuration_data()
data_conf.set('bindir', bin_dir)
data_conf.set('libexecdir', libexec_dir)
if enable_systemd
unit_files = {
'gnome-initial-setup-first-login.service' : [ 'gnome-session.target.wants/' ],
'gnome-initial-setup-copy-worker.service' : [ 'gnome-session.target.wants/' ],
......@@ -72,7 +73,7 @@ if enable_systemd
configure_file(
input: unit + '.in',
output: unit,
configuration: unitconf,
configuration: data_conf,
install_dir: systemd_userunitdir
)
......@@ -102,7 +103,13 @@ endif
rules_dir = join_paths(data_dir, 'polkit-1', 'rules.d')
install_data('20-gnome-initial-setup.rules', install_dir: rules_dir)
configure_file(
input: '20-gnome-initial-setup.rules.in',
output: '20-gnome-initial-setup.rules',
install: true,
install_dir: rules_dir,
configuration: data_conf,
)
session_dir = join_paths(data_dir, 'gnome-session', 'sessions')
configure_file(
......
gnome-initial-setup (41.0-1ubuntu1) jammy; urgency=medium
* Resynchronize with Debian. Remaining changes:
+ debian/control.in:
- Build-Depends on libsnapd-glib-dev, libsoup2.4-dev, libsysmetrics-dev
+ Add Ubuntu-specific patches:
- 0001-Make-summary-page-explicitly-request-navigation-butt.patch
- 0001-Ensure-stamp-file-if-the-user-quit-the-wizard.patch
- 0001-Add-Ubuntu-mode-with-special-pages.patch
- 0001-Display-the-ubuntu-welcome-wizard-in-Unity.patch
- 0006-goa-Add-Ubuntu-Single-Sign-On-to-the-list.patch
- 0007-goa-adjust-description-to-not-mention-email-or-conta.patch
- Don-t-show-Facebook-in-Ubuntu.patch
- 0008-Ubuntu-location-default.patch
+ debian/vendor.conf,
- we don't do the upstream welcome tour on Ubuntu, it's not packaged
and not adapted to our customized desktop configuration
* debian/patches/ubuntu_newuser_wizard.patch:
- revert the new upstream behaviour of not using the wizard for
existing users since it has a purpose in Ubuntu
* Removed delta since it's included in Debian now
* debian/control.in, debian/rules:
- build without malcontent for now since it's in universe
-- Sebastien Bacher <seb128@ubuntu.com> Thu, 11 Nov 2021 12:46:05 +0100
gnome-initial-setup (41.0-1) unstable; urgency=medium
* New upstream release
* Bump minimum meson to 0.50.0
* Install Ubuntu's vendor.conf in upstream recommended /usr/share/
* Don't build with malcontent on Ubuntu since it's not in Ubuntu main
-- Jeremy Bicha <jbicha@debian.org> Fri, 17 Sep 2021 07:05:14 -0400
gnome-initial-setup (40.4-1ubuntu1) impish; urgency=medium
* Resynchronize with Debian. Remaining changes:
......
......@@ -40,7 +40,7 @@ Build-Depends: debhelper-compat (= 13),
libsystemd-dev [linux-any],
libwebkit2gtk-4.0-dev (>= 2.26),
libxml2-utils,
meson (>= 0.49.0),
meson (>= 0.50.0),
policykit-1,
systemd ( >= 242),
Rules-Requires-Root: no
......@@ -62,6 +62,7 @@ Depends: ${shlibs:Depends},
Recommends: accountsservice,
geoclue-2.0 (>= 2.3.1),
gnome-keyring,
${malcontent:Recommends}
Suggests: gdm3,
Description: Initial GNOME system setup helper
After acquiring or installing a new system there are a few essential things
......
......@@ -36,7 +36,7 @@ Build-Depends: debhelper-compat (= 13),
libsystemd-dev [linux-any],
libwebkit2gtk-4.0-dev (>= 2.26),
libxml2-utils,
meson (>= 0.49.0),
meson (>= 0.50.0),
policykit-1,
systemd ( >= 242),
Rules-Requires-Root: no
......@@ -58,6 +58,7 @@ Depends: ${shlibs:Depends},
Recommends: accountsservice,
geoclue-2.0 (>= 2.3.1),
gnome-keyring,
${malcontent:Recommends}
Suggests: gdm3,
Description: Initial GNOME system setup helper
After acquiring or installing a new system there are a few essential things
......
......@@ -3,7 +3,6 @@ pristine-tar = True
debian-branch = ubuntu/master
debian-tag=ubuntu/%(version)s
upstream-branch = upstream/latest
upstream-vcs-tag = %(version)s
[buildpackage]
sign-tags = True
......@@ -13,6 +12,7 @@ multimaint-merge = True
[import-orig]
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
upstream-vcs-tag = %(version%~%.)s
[pq]
patch-numbers = False
......@@ -120,7 +120,7 @@ Index: gnome-initial-setup/data/meson.build
===================================================================
--- gnome-initial-setup.orig/data/meson.build
+++ gnome-initial-setup/data/meson.build
@@ -100,6 +100,14 @@ if enable_systemd
@@ -101,6 +101,14 @@ if enable_systemd
)
endif
......@@ -134,12 +134,12 @@ Index: gnome-initial-setup/data/meson.build
+)
rules_dir = join_paths(data_dir, 'polkit-1', 'rules.d')
install_data('20-gnome-initial-setup.rules', install_dir: rules_dir)
configure_file(
Index: gnome-initial-setup/gnome-initial-setup/gis-driver.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-driver.c
+++ gnome-initial-setup/gnome-initial-setup/gis-driver.c
@@ -99,6 +99,9 @@ struct _GisDriverPrivate {
@@ -101,6 +101,9 @@ struct _GisDriver {
const gchar *vendor_conf_file_path;
GKeyFile *vendor_conf_file;
......@@ -147,41 +147,36 @@ Index: gnome-initial-setup/gnome-initial-setup/gis-driver.c
+ guint inhibit_count;
+ gboolean quit_requested;
};
typedef struct _GisDriverPrivate GisDriverPrivate;
@@ -1034,6 +1037,38 @@ gis_driver_save_data (GisDriver *driver
return gis_assistant_save_data (priv->assistant, error);
G_DEFINE_TYPE (GisDriver, gis_driver, GTK_TYPE_APPLICATION)
@@ -980,6 +982,33 @@ gis_driver_save_data (GisDriver *driver
return gis_assistant_save_data (driver->assistant, error);
}
+void
+gis_driver_inhibit_quit (GisDriver *driver)
+{
+ GisDriverPrivate *priv = gis_driver_get_instance_private (driver);
+ priv->inhibit_count++;
+ driver->inhibit_count++;
+}
+
+void
+gis_driver_uninhibit_quit (GisDriver *driver)
+{
+ GisDriverPrivate *priv = gis_driver_get_instance_private (driver);
+
+ priv->inhibit_count--;
+ if (!priv->inhibit_count && priv->quit_requested)
+ driver->inhibit_count--;
+ if (!driver->inhibit_count && driver->quit_requested)
+ gis_driver_quit (driver);
+}
+
+void gis_driver_quit (GisDriver *driver)
+{
+ GisDriverPrivate *priv = gis_driver_get_instance_private (driver);
+
+ if (priv->inhibit_count == 0)
+ if (driver->inhibit_count == 0)
+ {
+ g_application_quit (G_APPLICATION (driver));
+ }
+ else
+ {
+ priv->quit_requested = TRUE;
+ gtk_widget_hide (GTK_WIDGET (priv->main_window));
+ driver->quit_requested = TRUE;
+ gtk_widget_hide (GTK_WIDGET (driver->main_window));
+ }
+ }
+
......@@ -192,7 +187,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gis-driver.h
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-driver.h
+++ gnome-initial-setup/gnome-initial-setup/gis-driver.h
@@ -141,6 +141,12 @@ gchar *gis_driver_conf_get_string (GisDr
@@ -120,6 +120,12 @@ gchar *gis_driver_conf_get_string (GisDr
const gchar *group,
const gchar *key);
......@@ -209,7 +204,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gnome-initial-setup.c
+++ gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
@@ -43,6 +43,9 @@
@@ -44,6 +44,9 @@
#include "pages/parental-controls/gis-parental-controls-page.h"
#include "pages/password/gis-password-page.h"
#include "pages/summary/gis-summary-page.h"
......@@ -219,7 +214,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
#define VENDOR_PAGES_GROUP "pages"
#define VENDOR_SKIP_KEY "skip"
@@ -81,6 +84,17 @@ static PageData page_table[] = {
@@ -83,6 +86,17 @@ static PageData page_table[] = {
{ NULL },
};
......@@ -237,7 +232,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
#undef PAGE
static gboolean
@@ -178,6 +192,25 @@ destroy_pages_after (GisAssistant *assis
@@ -180,6 +194,25 @@ destroy_pages_after (GisAssistant *assis
}
}
......@@ -263,7 +258,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
static void
rebuild_pages_cb (GisDriver *driver)
{
@@ -190,7 +223,11 @@ rebuild_pages_cb (GisDriver *driver)
@@ -192,7 +225,11 @@ rebuild_pages_cb (GisDriver *driver)
assistant = gis_driver_get_assistant (driver);
current_page = gis_assistant_get_current_page (assistant);
......@@ -276,7 +271,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
g_ptr_array_free (skipped_pages, TRUE);
skipped_pages = g_ptr_array_new_with_free_func ((GDestroyNotify) gtk_widget_destroy);
@@ -198,7 +235,7 @@ rebuild_pages_cb (GisDriver *driver)
@@ -200,7 +237,7 @@ rebuild_pages_cb (GisDriver *driver)
if (current_page != NULL) {
destroy_pages_after (assistant, current_page);
......@@ -289,7 +284,7 @@ Index: gnome-initial-setup/gnome-initial-setup/meson.build
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/meson.build
+++ gnome-initial-setup/gnome-initial-setup/meson.build
@@ -50,6 +50,9 @@ dependencies = [
@@ -52,6 +52,9 @@ dependencies = [
dependency ('libsecret-1', version: '>= 0.18.8'),
dependency ('pwquality'),
dependency ('webkit2gtk-4.0', version: '>= 2.26.0'),
......@@ -2794,8 +2789,8 @@ Index: gnome-initial-setup/gnome-initial-setup/pages/meson.build
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/meson.build
+++ gnome-initial-setup/gnome-initial-setup/pages/meson.build
@@ -9,6 +9,9 @@ pages = [
'password',
@@ -10,6 +10,9 @@ pages = [
'software',
'summary',
'welcome',
+ 'ubuntu-report',
......@@ -3323,7 +3318,7 @@ Index: gnome-initial-setup/meson.build
===================================================================
--- gnome-initial-setup.orig/meson.build
+++ gnome-initial-setup/meson.build
@@ -69,6 +69,9 @@ libmalcontent_ui_dep = dependency ('malc
@@ -70,6 +70,9 @@ libmalcontent_ui_dep = dependency ('malc
required: get_option('parental_controls'))
conf.set('HAVE_PARENTAL_CONTROLS', libmalcontent_dep.found() and libmalcontent_ui_dep.found())
......@@ -3342,7 +3337,7 @@ Index: gnome-initial-setup/po/POTFILES.in
data/gnome-initial-setup-first-login.desktop.in.in
data/gnome-initial-setup.desktop.in.in
gnome-initial-setup/cc-common-language.c
@@ -38,3 +39,12 @@ gnome-initial-setup/pages/timezone/gis-t
@@ -40,3 +41,12 @@ gnome-initial-setup/pages/timezone/gis-t
gnome-initial-setup/pages/timezone/gis-timezone-page.ui
gnome-initial-setup/pages/welcome/gis-welcome-page.c
gnome-initial-setup/pages/welcome/gis-welcome-page.ui
......
......@@ -26,7 +26,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gnome-initial-setup.c
+++ gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
@@ -95,6 +95,16 @@ static PageData ubuntu_page_table[] = {
@@ -97,6 +97,16 @@ static PageData ubuntu_page_table[] = {
{ NULL },
};
......@@ -43,7 +43,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
#undef PAGE
static gboolean
@@ -226,6 +236,8 @@ rebuild_pages_cb (GisDriver *driver)
@@ -228,6 +238,8 @@ rebuild_pages_cb (GisDriver *driver)
if (is_desktop ("ubuntu"))
page_data = ubuntu_page_table;
......
......@@ -6,34 +6,33 @@ Subject: Ensure stamp file if the user quit the wizard
gnome-initial-setup/gis-driver.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/gnome-initial-setup/gis-driver.c b/gnome-initial-setup/gis-driver.c
index 4ecf313..3b59bcc 100644
--- a/gnome-initial-setup/gis-driver.c
+++ b/gnome-initial-setup/gis-driver.c
@@ -634,6 +634,18 @@ gis_driver_is_small_screen (GisDriver *driver)
return priv->small_screen;
Index: gnome-initial-setup/gnome-initial-setup/gis-driver.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-driver.c
+++ gnome-initial-setup/gnome-initial-setup/gis-driver.c
@@ -589,6 +589,17 @@ gis_driver_is_small_screen (GisDriver *d
return driver->small_screen;
}
+static void
+gis_driver_shutdown (GApplication *app)
+{
+ GisDriver *driver = GIS_DRIVER (app);
+ GisDriverPrivate *priv = gis_driver_get_instance_private (driver);
+
+ G_APPLICATION_CLASS (gis_driver_parent_class)->shutdown (app);
+
+ if (priv->mode == GIS_DRIVER_MODE_EXISTING_USER)
+ if (driver->mode == GIS_DRIVER_MODE_EXISTING_USER)
+ gis_ensure_stamp_files (driver);
+}
+
static gboolean
monitor_is_small (GdkMonitor *monitor)
{
@@ -924,6 +936,7 @@ gis_driver_class_init (GisDriverClass *klass)
@@ -873,6 +884,7 @@ gis_driver_class_init (GisDriverClass *k
gobject_class->finalize = gis_driver_finalize;
application_class->startup = gis_driver_startup;
application_class->activate = gis_driver_activate;
+ application_class->shutdown = gis_driver_shutdown;
klass->locale_changed = gis_driver_real_locale_changed;
signals[REBUILD_PAGES] =
g_signal_new ("rebuild-pages",
......@@ -11,93 +11,93 @@ Subject: [PATCH 4/6] Make summary page explicitly request navigation buttons
.../pages/summary/gis-summary-page.c | 2 ++
5 files changed, 54 insertions(+), 3 deletions(-)
diff --git a/gnome-initial-setup/gis-assistant.c b/gnome-initial-setup/gis-assistant.c
index 14887f6..46cc7f1 100644
--- a/gnome-initial-setup/gis-assistant.c
+++ b/gnome-initial-setup/gis-assistant.c
@@ -45,6 +45,7 @@ static GParamSpec *obj_props[PROP_LAST];
struct _GisAssistantPrivate
{
Index: gnome-initial-setup/gnome-initial-setup/gis-assistant.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-assistant.c
+++ gnome-initial-setup/gnome-initial-setup/gis-assistant.c
@@ -47,6 +47,7 @@ struct _GisAssistant
GtkBox parent_instance;
GtkWidget *forward;
+ GtkWidget *done;
GtkWidget *accept;
GtkWidget *skip;
GtkWidget *back;
@@ -126,7 +127,11 @@ static void
@@ -121,7 +122,11 @@ find_next_page (GisAssistant *self,
static void
switch_to_next_page (GisAssistant *assistant)
{
GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
- switch_to (assistant, find_next_page (priv->current_page));
- switch_to (assistant, find_next_page (assistant, assistant->current_page));
+ GisPage *page;
+
+ page = find_next_page (priv->current_page);
+ page = find_next_page (assistant, assistant->current_page);
+ if (page)
+ switch_to (assistant, page);
}
static void
@@ -188,6 +193,7 @@ set_navigation_button (GisAssistant *assistant,
GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
gtk_widget_set_visible (priv->forward, (widget == priv->forward));
+ gtk_widget_set_visible (priv->done, (widget == priv->done));
gtk_widget_set_visible (priv->accept, (widget == priv->accept));
gtk_widget_set_visible (priv->skip, (widget == priv->skip));
@@ -185,6 +190,7 @@ set_navigation_button (GisAssistant *ass
GtkWidget *widget)
{
gtk_widget_set_visible (assistant->forward, (widget == assistant->forward));
+ gtk_widget_set_visible (assistant->done, (widget == assistant->done));
gtk_widget_set_visible (assistant->accept, (widget == assistant->accept));
gtk_widget_set_visible (assistant->skip, (widget == assistant->skip));
}
@@ -207,7 +213,7 @@ update_navigation_buttons (GisAssistant *assistant)
@@ -203,7 +209,7 @@ update_navigation_buttons (GisAssistant
is_last_page = (page_priv->link->next == NULL);
is_last_page = (l->next == NULL);
- if (is_last_page)
+ if (gis_page_get_hide_navigation (page))
{
gtk_widget_hide (priv->back);
gtk_widget_hide (priv->forward);
@@ -227,6 +233,8 @@ update_navigation_buttons (GisAssistant *assistant)
gtk_widget_hide (assistant->back);
gtk_widget_hide (assistant->forward);
@@ -223,6 +229,8 @@ update_navigation_buttons (GisAssistant
if (gis_page_get_needs_accept (page))
next_widget = priv->accept;
next_widget = assistant->accept;
+ else if (is_last_page)
+ next_widget = priv->done;
+ next_widget = assistant->done;
else
next_widget = priv->forward;
next_widget = assistant->forward;
@@ -259,6 +267,7 @@ update_applying_state (GisAssistant *assistant)
is_first_page = priv->current_page->assistant_priv->link->prev == NULL;
@@ -254,6 +262,7 @@ update_applying_state (GisAssistant *ass
is_first_page = assistant->pages->data == assistant->current_page;
}
gtk_widget_set_sensitive (priv->forward, !applying);
+ gtk_widget_set_sensitive (priv->done, !applying);
gtk_widget_set_visible (priv->back, !applying && !is_first_page);
gtk_widget_set_visible (priv->cancel, applying);
gtk_widget_set_visible (priv->spinner, applying);
@@ -421,6 +430,7 @@ gis_assistant_locale_changed (GisAssistant *assistant)
gtk_widget_set_sensitive (assistant->forward, !applying);
+ gtk_widget_set_sensitive (assistant->done, !applying);
gtk_widget_set_visible (assistant->back, !applying && !is_first_page);
gtk_widget_set_visible (assistant->cancel, applying);
gtk_widget_set_visible (assistant->spinner, applying);
@@ -405,6 +414,7 @@ gis_assistant_locale_changed (GisAssista
GList *l;
gtk_button_set_label (GTK_BUTTON (priv->forward), _("_Next"));
+ gtk_button_set_label (GTK_BUTTON (priv->done), _("_Done"));
gtk_button_set_label (GTK_BUTTON (priv->accept), _("_Accept"));
gtk_button_set_label (GTK_BUTTON (priv->skip), _("_Skip"));
gtk_button_set_label (GTK_BUTTON (priv->back), _("_Previous"));
@@ -459,6 +469,7 @@ gis_assistant_init (GisAssistant *assistant)
gtk_button_set_label (GTK_BUTTON (assistant->forward), _("_Next"));
+ gtk_button_set_label (GTK_BUTTON (assistant->done), _("_Done"));
gtk_button_set_label (GTK_BUTTON (assistant->accept), _("_Accept"));
gtk_button_set_label (GTK_BUTTON (assistant->skip), _("_Skip"));
gtk_button_set_label (GTK_BUTTON (assistant->back), _("_Previous"));
@@ -440,6 +450,7 @@ gis_assistant_init (GisAssistant *assist
G_CALLBACK (current_page_changed), assistant);
g_signal_connect (priv->forward, "clicked", G_CALLBACK (go_forward), assistant);
+ g_signal_connect (priv->done, "clicked", G_CALLBACK (go_forward), assistant);
g_signal_connect (priv->accept, "clicked", G_CALLBACK (go_forward), assistant);
g_signal_connect (priv->skip, "clicked", G_CALLBACK (go_forward), assistant);
g_signal_connect (assistant->forward, "clicked", G_CALLBACK (go_forward), assistant);
+ g_signal_connect (assistant->done, "clicked", G_CALLBACK (go_forward), assistant);
g_signal_connect (assistant->accept, "clicked", G_CALLBACK (go_forward), assistant);
g_signal_connect (assistant->skip, "clicked", G_CALLBACK (go_forward), assistant);
@@ -497,6 +508,7 @@ gis_assistant_class_init (GisAssistantClass *klass)
@@ -478,6 +489,7 @@ gis_assistant_class_init (GisAssistantCl
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/initial-setup/gis-assistant.ui");
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, forward);
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, done);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, accept);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, skip);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, back);
diff --git a/gnome-initial-setup/gis-assistant.ui b/gnome-initial-setup/gis-assistant.ui
index 936f829..faac293 100644
--- a/gnome-initial-setup/gis-assistant.ui
+++ b/gnome-initial-setup/gis-assistant.ui
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, forward);
+ gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, done);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, accept);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, skip);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, back);
Index: gnome-initial-setup/gnome-initial-setup/gis-assistant.ui
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-assistant.ui
+++ gnome-initial-setup/gnome-initial-setup/gis-assistant.ui
@@ -68,6 +68,15 @@
<property name="pack-type">end</property>
</packing>
......@@ -114,10 +114,10 @@ index 936f829..faac293 100644
</object>
<object class="GtkSizeGroup" id="headerheight">
diff --git a/gnome-initial-setup/gis-page.c b/gnome-initial-setup/gis-page.c
index 25729d0..a6553c3 100644
--- a/gnome-initial-setup/gis-page.c
+++ b/gnome-initial-setup/gis-page.c
Index: gnome-initial-setup/gnome-initial-setup/gis-page.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-page.c
+++ gnome-initial-setup/gnome-initial-setup/gis-page.c
@@ -38,7 +38,8 @@ struct _GisPagePrivate
guint skippable : 1;
guint needs_accept : 1;
......@@ -136,7 +136,7 @@ index 25729d0..a6553c3 100644
PROP_NEEDS_ACCEPT,
PROP_APPLYING,
PROP_SMALL_SCREEN,
@@ -82,6 +84,9 @@ gis_page_get_property (GObject *object,
@@ -82,6 +84,9 @@ gis_page_get_property (GObject *objec
case PROP_SKIPPABLE:
g_value_set_boolean (value, priv->skippable);
break;
......@@ -146,7 +146,7 @@ index 25729d0..a6553c3 100644
case PROP_NEEDS_ACCEPT:
g_value_set_boolean (value, priv->needs_accept);
break;
@@ -131,6 +136,9 @@ gis_page_set_property (GObject *object,
@@ -131,6 +136,9 @@ gis_page_set_property (GObject *obj
case PROP_SKIPPABLE:
priv->skippable = g_value_get_boolean (value);
break;
......@@ -156,7 +156,7 @@ index 25729d0..a6553c3 100644
case PROP_NEEDS_ACCEPT:
priv->needs_accept = g_value_get_boolean (value);
break;
@@ -219,6 +227,9 @@ gis_page_class_init (GisPageClass *klass)
@@ -219,6 +227,9 @@ gis_page_class_init (GisPageClass *klass
obj_props[PROP_SKIPPABLE] =
g_param_spec_boolean ("skippable", "", "", FALSE,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
......@@ -166,11 +166,10 @@ index 25729d0..a6553c3 100644
obj_props[PROP_NEEDS_ACCEPT] =
g_param_spec_boolean ("needs-accept", "", "", FALSE,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
@@ -293,6 +304,21 @@ gis_page_set_skippable (GisPage *page, gboolean skippable)
g_object_notify_by_pspec (G_OBJECT (page), obj_props[PROP_SKIPPABLE]);
@@ -294,6 +305,21 @@ gis_page_set_skippable (GisPage *page, g
}
+gboolean
gboolean
+gis_page_get_hide_navigation (GisPage *page)
+{
+ GisPagePrivate *priv = gis_page_get_instance_private (page);
......@@ -185,14 +184,15 @@ index 25729d0..a6553c3 100644
+ g_object_notify_by_pspec (G_OBJECT (page), obj_props[PROP_HIDE_NAVIGATION]);
+}
+
gboolean
+gboolean
gis_page_get_needs_accept (GisPage *page)
{
diff --git a/gnome-initial-setup/gis-page.h b/gnome-initial-setup/gis-page.h
index 56aa0f8..f0132c3 100644
--- a/gnome-initial-setup/gis-page.h
+++ b/gnome-initial-setup/gis-page.h
@@ -74,6 +74,8 @@ gboolean gis_page_get_complete (GisPage *page);
GisPagePrivate *priv = gis_page_get_instance_private (page);
Index: gnome-initial-setup/gnome-initial-setup/gis-page.h
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gis-page.h
+++ gnome-initial-setup/gnome-initial-setup/gis-page.h
@@ -71,6 +71,8 @@ gboolean gis_page_get_complete (GisP
void gis_page_set_complete (GisPage *page, gboolean complete);
gboolean gis_page_get_skippable (GisPage *page);
void gis_page_set_skippable (GisPage *page, gboolean skippable);
......@@ -201,11 +201,11 @@ index 56aa0f8..f0132c3 100644
gboolean gis_page_get_needs_accept (GisPage *page);
void gis_page_set_needs_accept (GisPage *page, gboolean needs_accept);
gboolean gis_page_get_has_forward (GisPage *page);
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.c b/gnome-initial-setup/pages/summary/gis-summary-page.c
index 106cf48..ae40a76 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -250,6 +250,8 @@ gis_summary_page_constructed (GObject *object)
Index: gnome-initial-setup/gnome-initial-setup/pages/summary/gis-summary-page.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ gnome-initial-setup/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -250,6 +250,8 @@ gis_summary_page_constructed (GObject *o
G_OBJECT_CLASS (gis_summary_page_parent_class)->constructed (object);
......
......@@ -9,11 +9,11 @@ Forwared: not-needed
gnome-initial-setup/pages/goa/gis-goa-page.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.c b/gnome-initial-setup/pages/goa/gis-goa-page.c
index 87341c4..bc135fc 100644
--- a/gnome-initial-setup/pages/goa/gis-goa-page.c
+++ b/gnome-initial-setup/pages/goa/gis-goa-page.c
@@ -186,7 +186,7 @@ populate_provider_list (GisGoaPage *page)
Index: gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/goa/gis-goa-page.c
+++ gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.c
@@ -186,7 +186,7 @@ populate_provider_list (GisGoaPage *page
g_auto(GStrv) conf_providers =
gis_driver_conf_get_string_list (GIS_PAGE (page)->driver, VENDOR_GOA_GROUP, VENDOR_PROVIDERS_KEY, NULL);
GStrv providers = conf_providers ? conf_providers :
......
......@@ -10,10 +10,10 @@ Forwared: https://gitlab.gnome.org/GNOME/gnome-initial-setup/merge_requests/13/
gnome-initial-setup/pages/goa/gis-goa-page.ui | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.ui b/gnome-initial-setup/pages/goa/gis-goa-page.ui
index 9ef1d95..f826da9 100644
--- a/gnome-initial-setup/pages/goa/gis-goa-page.ui
+++ b/gnome-initial-setup/pages/goa/gis-goa-page.ui
Index: gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.ui
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/goa/gis-goa-page.ui
+++ gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.ui
@@ -15,7 +15,7 @@
<property name="visible">True</property>
<property name="margin_top">24</property>
......
......@@ -13,11 +13,11 @@ Subject: Ubuntu-location-default
gnome-initial-setup/pages/privacy/gis-privacy-page.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnome-initial-setup/pages/privacy/gis-privacy-page.c b/gnome-initial-setup/pages/privacy/gis-privacy-page.c
index 0774ec4..1dfd95c 100644
--- a/gnome-initial-setup/pages/privacy/gis-privacy-page.c
+++ b/gnome-initial-setup/pages/privacy/gis-privacy-page.c
@@ -127,7 +127,7 @@ gis_privacy_page_constructed (GObject *object)
Index: gnome-initial-setup/gnome-initial-setup/pages/privacy/gis-privacy-page.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/privacy/gis-privacy-page.c
+++ gnome-initial-setup/gnome-initial-setup/pages/privacy/gis-privacy-page.c
@@ -127,7 +127,7 @@ gis_privacy_page_constructed (GObject *o
priv->location_settings = g_settings_new ("org.gnome.system.location");
priv->privacy_settings = g_settings_new ("org.gnome.desktop.privacy");
......
......@@ -10,10 +10,10 @@ LP: #1797736
gnome-initial-setup/pages/goa/gis-goa-page.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.c b/gnome-initial-setup/pages/goa/gis-goa-page.c
index bc135fc..780a085 100644
--- a/gnome-initial-setup/pages/goa/gis-goa-page.c
+++ b/gnome-initial-setup/pages/goa/gis-goa-page.c
Index: gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/pages/goa/gis-goa-page.c
+++ gnome-initial-setup/gnome-initial-setup/pages/goa/gis-goa-page.c
@@ -62,6 +62,25 @@ struct _ProviderWidget {
};
typedef struct _ProviderWidget ProviderWidget;
......@@ -40,7 +40,7 @@ index bc135fc..780a085 100644
static void
sync_provider_widget (ProviderWidget *provider_widget)
{
@@ -185,8 +204,10 @@ populate_provider_list (GisGoaPage *page)
@@ -185,8 +204,10 @@ populate_provider_list (GisGoaPage *page
{
g_auto(GStrv) conf_providers =
gis_driver_conf_get_string_list (GIS_PAGE (page)->driver, VENDOR_GOA_GROUP, VENDOR_PROVIDERS_KEY, NULL);
......
......@@ -2,7 +2,7 @@ Index: gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
===================================================================
--- gnome-initial-setup.orig/gnome-initial-setup/gnome-initial-setup.c
+++ gnome-initial-setup/gnome-initial-setup/gnome-initial-setup.c
@@ -356,20 +356,6 @@ main (int argc, char *argv[])
@@ -358,20 +358,6 @@ main (int argc, char *argv[])
driver = gis_driver_new (mode);
......
......@@ -6,24 +6,34 @@ export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs
%:
dh $@
# malcontent it not in Ubuntu main yet & is only built on some arches
ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
PARENTAL_CONTROL := -Dparental_controls=disabled
else
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x hppa powerpc powerpcspe ppc64))
PARENTAL_CONTROL := -Dparental_controls=enabled
else
PARENTAL_CONTROL := -Dparental_controls=disabled
endif
endif
override_dh_auto_configure:
dh_auto_configure -- \
-Dauto_features=enabled \
-Dparental_controls=disabled \
-Dvendor-conf-file=/usr/lib/gnome-initial-setup/vendor.conf
$(PARENTAL_CONTROL)
# Skip language chooser on Ubuntu since it doesn't work there
ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
execute_after_dh_install:
dh_install debian/vendor.conf /usr/lib/gnome-initial-setup
dh_install debian/vendor.conf /usr/share/gnome-initial-setup/
endif
# Depend on the appropriate package for the Welcome logo
# And don't add malcontent Recommends in Ubuntu
override_dh_gencontrol:
ifeq ($(shell dpkg-vendor --query vendor),Debian)
dh_gencontrol -- -Vlogo:Depends='desktop-base'
else ifeq ($(shell dpkg-vendor --query vendor),Ubuntu)
ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
dh_gencontrol -- -Vlogo:Depends='gnome-control-center-data'
else
dh_gencontrol
dh_gencontrol -- -Vlogo:Depends='desktop-base' \
-Vmalcontent:Recommends='malcontent [amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x hppa powerpc powerpcspe ppc64]'
endif