Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnome-kiosk for openSUSE:Factory 
checked in at 2023-03-24 15:19:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-kiosk (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-kiosk.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-kiosk"

Fri Mar 24 15:19:46 2023 rev:5 rq:1073315 version:44.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-kiosk/gnome-kiosk.changes  2022-09-21 
14:43:42.709961979 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-kiosk.new.31432/gnome-kiosk.changes       
2023-03-24 15:20:05.886786897 +0100
@@ -1,0 +2,26 @@
+Mon Mar 20 16:09:31 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.0:
+  + No changes, stable bump only.
+
+-------------------------------------------------------------------
+Mon Mar  6 16:02:51 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.rc:
+  + Rename dconf profile to not have hyphen
+  + Set dconf profile unconditionally
+  + Use https instead of http in search-app
+
+-------------------------------------------------------------------
+Fri Feb 24 18:05:38 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.beta:
+  + Deprecation fixes
+  + Require mutter 44
+  + Compat fix for Anaconda Installer project
+  + Script session double-starting fix
+  + Allow changing background in gsettings
+- Bump mutter_api define to 12 following upstream changes.
+- Build sample-app as noarch.
+
+-------------------------------------------------------------------

Old:
----
  _servicedata
  gnome-kiosk-43.0.obscpio

New:
----
  gnome-kiosk-44.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-kiosk.spec ++++++
--- /var/tmp/diff_new_pack.5dHSCs/_old  2023-03-24 15:20:06.514790171 +0100
+++ /var/tmp/diff_new_pack.5dHSCs/_new  2023-03-24 15:20:06.522790214 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gnome-kiosk
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,10 +16,10 @@
 #
 
 
-%define mutter_api 11
+%define mutter_api 12
 
 Name:           gnome-kiosk
-Version:        43.0
+Version:        44.0
 Release:        0
 Summary:        Mutter based compositor for kiosks
 License:        GPL-2.0-or-later
@@ -49,6 +49,7 @@
 Summary:        Search appliance sample app
 Requires:       %{name} = %{version}
 Requires:       MozillaFirefox
+BuildArch:      noarch
 
 %description sample-app
 Search appliance sample app that demonstate how the kiosk
@@ -84,6 +85,11 @@
 %dir %{_datadir}/wayland-sessions
 %{_datadir}/wayland-sessions/gnome-kiosk-script-wayland.desktop
 %{_datadir}/xsessions/gnome-kiosk-script-xorg.desktop
+%dir %{_datadir}/dconf
+%dir %{_datadir}/dconf/profile
+%dir %{_datadir}/gnome-kiosk
+%{_datadir}/dconf/profile/gnomekiosk
+%{_datadir}/gnome-kiosk/gnomekiosk.dconf.compiled
 
 %files sample-app
 %{_datadir}/applications/org.gnome.Kiosk.SearchApp.desktop

++++++ _service ++++++
--- /var/tmp/diff_new_pack.5dHSCs/_old  2023-03-24 15:20:06.554790381 +0100
+++ /var/tmp/diff_new_pack.5dHSCs/_new  2023-03-24 15:20:06.558790401 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/gnome-kiosk.git</param>
-    <param name="revision">refs/tags/43.0</param>
+    <param name="revision">refs/tags/44.0</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ gnome-kiosk-43.0.obscpio -> gnome-kiosk-44.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/.gitlab-ci/checkout-mutter.sh 
new/gnome-kiosk-44.0/.gitlab-ci/checkout-mutter.sh
--- old/gnome-kiosk-43.0/.gitlab-ci/checkout-mutter.sh  1970-01-01 
01:00:00.000000000 +0100
+++ new/gnome-kiosk-44.0/.gitlab-ci/checkout-mutter.sh  2023-03-20 
16:46:45.000000000 +0100
@@ -0,0 +1,69 @@
+#!/usr/bin/bash
+
+fetch() {
+  local remote=$1
+  local ref=$2
+
+  git fetch --quiet --depth=1 $remote $ref 2>/dev/null
+}
+
+mutter_target=
+
+echo -n Cloning into mutter ...
+if git clone --quiet --depth=1 https://gitlab.gnome.org/GNOME/mutter.git; then
+  echo \ done
+else
+  echo \ failed
+  exit 1
+fi
+
+cd mutter
+
+if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
+  
merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//gnome-kiosk/mutter}
+  merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
+
+  echo -n Looking for $merge_request_branch on remote ...
+  if fetch $merge_request_remote $merge_request_branch; then
+    echo \ found
+    mutter_target=FETCH_HEAD
+  else
+    echo \ not found
+
+    echo -n Looking for $CI_MERGE_REQUEST_TARGET_BRANCH_NAME instead ...
+    if fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME; then
+      echo \ found
+      mutter_target=FETCH_HEAD
+    else
+      echo \ not found
+    fi
+  fi
+fi
+
+if [ -z "$mutter_target" ]; then
+  echo -n Looking for $CI_COMMIT_REF_NAME on remote ...
+  if fetch origin $CI_COMMIT_REF_NAME; then
+    echo \ found
+    mutter_target=FETCH_HEAD
+  else
+    echo \ not found
+  fi
+fi
+
+fallback_branch=${CI_COMMIT_TAG:+gnome-}${CI_COMMIT_TAG%%.*}
+if [ -z "$mutter_target" -a "$fallback_branch" ]; then
+  echo -n Looking for $fallback_branch instead ...
+  if fetch origin $fallback_branch; then
+    echo \ found
+    mutter_target=FETCH_HEAD
+  else
+    echo \ not found
+  fi
+fi
+
+if [ -z "$mutter_target" ]; then
+  mutter_target=HEAD
+  echo Using $mutter_target instead
+fi
+
+git checkout -q $mutter_target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/.gitlab-ci.yml 
new/gnome-kiosk-44.0/.gitlab-ci.yml
--- old/gnome-kiosk-43.0/.gitlab-ci.yml 2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/.gitlab-ci.yml 2023-03-20 16:46:45.000000000 +0100
@@ -3,26 +3,12 @@
         - test
 
 build-fedora:
-        image: fedora:rawhide
+        image: 
registry.gitlab.gnome.org/gnome/mutter/fedora/37:x86_64-2023-02-22.0
         stage: build
         before_script:
-                - dnf -y install
-                                desktop-file-utils
-                                gcc
-                                gettext
-                                git
-                                glib2-devel
-                                gnome-desktop3-devel
-                                gnome-settings-daemon
-                                gsettings-desktop-schemas
-                                gtk4-devel
-                                ibus-devel
-                                mesa-libEGL-devel
-                                mesa-libGL-devel
-                                meson
-                                mutter-devel
-                                patchutils
-                                uncrustify
+                - .gitlab-ci/checkout-mutter.sh
+                - meson mutter mutter/build --prefix=/usr
+                - meson install -C mutter/build
         script:
                 - export BUILD_ROOT=_build
                 - meson . $BUILD_ROOT --prefix=/usr --sysconfdir=/etc 
--localstatedir=/var --mandir=/usr/share/man --libdir=/usr/lib64
@@ -34,20 +20,25 @@
                 - tags
         artifacts:
                 paths:
+                        - mutter
                         - _build
         only:
             - merge_requests
 
 test-fedora:
-        extends:
-                - build-fedora
+        image: 
registry.gitlab.gnome.org/gnome/mutter/fedora/37:x86_64-2023-02-22.0
         stage: test
+        before_script:
+                - dnf -y install patchutils
+                - meson install --no-rebuild -C mutter/build
         script:
                 - export BUILD_ROOT=_build
                 - meson . $BUILD_ROOT --prefix=/usr --sysconfdir=/etc 
--localstatedir=/var --mandir=/usr/share/man --libdir=/usr/lib64
                 - ninja -C $BUILD_ROOT
                 - ninja -C $BUILD_ROOT test
                 - find -depth -type d -name '*.p' -exec rm -rf "{}" \;
+        except:
+                - tags
         artifacts:
                 paths:
                         - _build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/NEWS new/gnome-kiosk-44.0/NEWS
--- old/gnome-kiosk-43.0/NEWS   2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/NEWS   2023-03-20 16:46:45.000000000 +0100
@@ -1,4 +1,19 @@
 # NEWS
+## 44.0
+- No updates
+
+## 44.rc
+- Rename dconf profile to not have hyphen
+- Set dconf profile unconditionally
+- Use https instead of http in search-app
+
+## 44.beta
+- deprecation fixes
+- require mutter 44
+- Compat fix for Anaconda Installer project
+- Script session double-starting fix
+- Allow changing background in gsettings
+
 ## 43.0
 - meson build fixes
 - require mutter 43
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/compositor/data/dconf/defaults/gnomekiosk.dconf 
new/gnome-kiosk-44.0/compositor/data/dconf/defaults/gnomekiosk.dconf
--- old/gnome-kiosk-43.0/compositor/data/dconf/defaults/gnomekiosk.dconf        
1970-01-01 01:00:00.000000000 +0100
+++ new/gnome-kiosk-44.0/compositor/data/dconf/defaults/gnomekiosk.dconf        
2023-03-20 16:46:45.000000000 +0100
@@ -0,0 +1,4 @@
+[org/gnome/desktop/background]
+color-shading-type='solid'
+picture-options='none'
+primary-color='#808080'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/compositor/data/dconf/gnomekiosk.in 
new/gnome-kiosk-44.0/compositor/data/dconf/gnomekiosk.in
--- old/gnome-kiosk-43.0/compositor/data/dconf/gnomekiosk.in    1970-01-01 
01:00:00.000000000 +0100
+++ new/gnome-kiosk-44.0/compositor/data/dconf/gnomekiosk.in    2023-03-20 
16:46:45.000000000 +0100
@@ -0,0 +1,2 @@
+user-db:user
+file-db:@DATADIR@/@PACKAGE@/gnomekiosk.dconf.compiled
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/compositor/kiosk-backgrounds.c 
new/gnome-kiosk-44.0/compositor/kiosk-backgrounds.c
--- old/gnome-kiosk-43.0/compositor/kiosk-backgrounds.c 2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-backgrounds.c 2023-03-20 
16:46:45.000000000 +0100
@@ -9,6 +9,8 @@
 #include <meta/display.h>
 #include <meta/util.h>
 
+#include <meta/meta-context.h>
+#include <meta/meta-backend.h>
 #include <meta/meta-plugin.h>
 #include <meta/meta-monitor-manager.h>
 #include <meta/meta-background-actor.h>
@@ -18,20 +20,34 @@
 #include <meta/meta-background.h>
 
 #include "kiosk-compositor.h"
+#include "kiosk-gobject-utils.h"
+
+#define KIOSK_BACKGROUNDS_SCHEMA "org.gnome.desktop.background"
+#define KIOSK_BACKGROUNDS_PICTURE_OPTIONS_SETTING "picture-options"
+#define KIOSK_BACKGROUNDS_PICTURE_URI_SETTING "picture-uri"
+#define KIOSK_BACKGROUNDS_COLOR_SHADING_TYPE_SETTING "color-shading-type"
+#define KIOSK_BACKGROUNDS_PRIMARY_COLOR_SETTING "primary-color"
+#define KIOSK_BACKGROUNDS_SECONDARY_COLOR_SETTING "secondary-color"
 
 struct _KioskBackgrounds
 {
-        MetaBackgroundGroup parent;
+        MetaBackgroundGroup       parent;
 
         /* weak references */
-        KioskCompositor    *compositor;
-        MetaDisplay        *display;
-        ClutterActor       *window_group;
-        MetaMonitorManager *monitor_manager;
-        ClutterActor       *stage;
+        KioskCompositor          *compositor;
+        MetaDisplay              *display;
+        ClutterActor             *window_group;
+        MetaContext              *context;
+        MetaBackend              *backend;
+        MetaMonitorManager       *monitor_manager;
+        ClutterActor             *stage;
+
+        MetaBackgroundImageCache *image_cache;
 
         /* strong references */
-        ClutterActor       *background_group;
+        GCancellable             *cancellable;
+        GSettings                *settings;
+        ClutterActor             *background_group;
 };
 
 enum
@@ -78,29 +94,128 @@
 }
 
 static void
+set_background_color_from_settings (KioskBackgrounds *self,
+                                    MetaBackground   *background)
+{
+        GDesktopBackgroundShading color_shading_type;
+        g_autofree char *primary_color_as_string = NULL;
+        g_autofree char *secondary_color_as_string = NULL;
+        ClutterColor primary_color = { 0 };
+        ClutterColor secondary_color = { 0 };
+
+        color_shading_type = g_settings_get_enum (self->settings, 
KIOSK_BACKGROUNDS_COLOR_SHADING_TYPE_SETTING);
+        primary_color_as_string = g_settings_get_string (self->settings, 
KIOSK_BACKGROUNDS_PRIMARY_COLOR_SETTING);
+        clutter_color_from_string (&primary_color, primary_color_as_string);
+
+        switch (color_shading_type) {
+        case G_DESKTOP_BACKGROUND_SHADING_SOLID:
+                meta_background_set_color (background, &primary_color);
+                break;
+
+        case G_DESKTOP_BACKGROUND_SHADING_VERTICAL:
+        case G_DESKTOP_BACKGROUND_SHADING_HORIZONTAL:
+                secondary_color_as_string = g_settings_get_string 
(self->settings, KIOSK_BACKGROUNDS_SECONDARY_COLOR_SETTING);
+                clutter_color_from_string (&secondary_color, 
secondary_color_as_string);
+                meta_background_set_gradient (background, color_shading_type, 
&primary_color, &secondary_color);
+                break;
+        }
+}
+
+static void
+on_background_image_loaded (KioskBackgrounds    *self,
+                            MetaBackgroundImage *background_image)
+{
+        MetaBackground *background;
+        GDesktopBackgroundStyle background_style;
+        GFile *picture_file = NULL;
+
+        g_signal_handlers_disconnect_by_func (G_OBJECT (background_image),
+                                              on_background_image_loaded,
+                                              self);
+
+        background = g_object_get_data (G_OBJECT (background_image), 
"kiosk-background");
+
+        picture_file = g_object_get_data (G_OBJECT (background), 
"picture-file");
+        background_style = g_settings_get_enum (self->settings, 
KIOSK_BACKGROUNDS_PICTURE_OPTIONS_SETTING);
+
+        meta_background_set_file (background, picture_file, background_style);
+        set_background_color_from_settings (self, background);
+
+        g_object_set_data (G_OBJECT (background), "picture-file", NULL);
+
+        background = NULL;
+        g_object_set_data (G_OBJECT (background_image), "kiosk-background", 
NULL);
+
+        g_object_unref (background_image);
+}
+
+static void
+set_background_file_from_settings (KioskBackgrounds *self,
+                                   MetaBackground   *background)
+{
+        g_autofree char *uri = NULL;
+        g_autoptr (GFile) picture_file = NULL;
+        MetaBackgroundImage *background_image;
+
+        uri = g_settings_get_string (self->settings, 
KIOSK_BACKGROUNDS_PICTURE_URI_SETTING);
+        picture_file = g_file_new_for_commandline_arg (uri);
+
+        /* We explicitly prime the file in the cache so we can defer setting 
the background color
+         * until the image is fully loaded and avoid flicker at startup.
+         */
+        background_image = meta_background_image_cache_load 
(self->image_cache, picture_file);
+        g_object_set_data_full (G_OBJECT (background_image),
+                                "kiosk-background",
+                                g_object_ref (background),
+                                g_object_unref);
+        g_object_set_data_full (G_OBJECT (background),
+                                "picture-file",
+                                g_steal_pointer (&picture_file),
+                                g_object_unref);
+
+        if (meta_background_image_is_loaded (background_image)) {
+                kiosk_gobject_utils_queue_immediate_callback (G_OBJECT (self),
+                                                              
"[kiosk-backgrounds] on_background_image_loaded",
+                                                              
self->cancellable,
+                                                              
KIOSK_OBJECT_CALLBACK (on_background_image_loaded),
+                                                              background);
+        } else {
+                g_signal_connect_object (G_OBJECT (background_image),
+                                         "loaded",
+                                         G_CALLBACK 
(on_background_image_loaded),
+                                         self,
+                                         G_CONNECT_SWAPPED);
+        }
+}
+
+static void
 create_background_for_monitor (KioskBackgrounds *self,
                                int               monitor_index)
 {
+        g_autoptr (MetaBackground) background = NULL;
+        GDesktopBackgroundStyle background_style;
         MetaRectangle geometry;
         ClutterActor *background_actor = NULL;
         MetaBackgroundContent *background_content;
-        g_autoptr (MetaBackground) background = NULL;
-        ClutterColor color;
 
         g_debug ("KioskBackgrounds: Creating background for monitor %d", 
monitor_index);
 
-        meta_display_get_monitor_geometry (self->display, monitor_index, 
&geometry);
+        background = meta_background_new (self->display);
+        background_style = g_settings_get_enum (self->settings, 
KIOSK_BACKGROUNDS_PICTURE_OPTIONS_SETTING);
+
+        if (background_style == G_DESKTOP_BACKGROUND_STYLE_NONE) {
+                set_background_color_from_settings (self, background);
+        } else {
+                set_background_file_from_settings (self, background);
+        }
 
         background_actor = meta_background_actor_new (self->display, 
monitor_index);
 
+        meta_display_get_monitor_geometry (self->display, monitor_index, 
&geometry);
+
         clutter_actor_set_position (background_actor, geometry.x, geometry.y);
         clutter_actor_set_size (background_actor, geometry.width, 
geometry.height);
 
-        clutter_color_init (&color, 50, 50, 50, 255);
-
-        background = meta_background_new (self->display);
-        meta_background_set_color (background, &color);
-
         background_content = META_BACKGROUND_CONTENT 
(clutter_actor_get_content (background_actor));
         meta_background_content_set_background (background_content, 
background);
 
@@ -161,19 +276,37 @@
 kiosk_backgrounds_dispose (GObject *object)
 {
         KioskBackgrounds *self = KIOSK_BACKGROUNDS (object);
+        if (self->cancellable != NULL) {
+                g_cancellable_cancel (self->cancellable);
+                g_clear_object (&self->cancellable);
+        }
 
+        g_clear_object (&self->background_group);
+        g_clear_object (&self->settings);
+
+        g_clear_weak_pointer (&self->context);
+        g_clear_weak_pointer (&self->backend);
         g_clear_weak_pointer (&self->stage);
         g_clear_weak_pointer (&self->display);
         g_clear_weak_pointer (&self->window_group);
         g_clear_weak_pointer (&self->monitor_manager);
         g_clear_weak_pointer (&self->compositor);
-
-        g_clear_object (&self->background_group);
+        g_clear_weak_pointer (&self->image_cache);
 
         G_OBJECT_CLASS (kiosk_backgrounds_parent_class)->dispose (object);
 }
 
 static void
+on_settings_changed (KioskBackgrounds *self)
+{
+        kiosk_gobject_utils_queue_defer_callback (G_OBJECT (self),
+                                                  "[kiosk-backgrounds] 
on_backgrounds_settings_changed",
+                                                  self->cancellable,
+                                                  KIOSK_OBJECT_CALLBACK 
(reinitialize_backgrounds),
+                                                  NULL);
+}
+
+static void
 kiosk_backgrounds_constructed (GObject *object)
 {
         KioskBackgrounds *self = KIOSK_BACKGROUNDS (object);
@@ -181,9 +314,14 @@
         G_OBJECT_CLASS (kiosk_backgrounds_parent_class)->constructed (object);
 
         g_set_weak_pointer (&self->display, meta_plugin_get_display 
(META_PLUGIN (self->compositor)));
+        g_set_weak_pointer (&self->context, meta_display_get_context 
(self->display));
+        g_set_weak_pointer (&self->backend, meta_context_get_backend 
(self->context));
         g_set_weak_pointer (&self->stage, meta_get_stage_for_display 
(self->display));
         g_set_weak_pointer (&self->window_group, 
meta_get_window_group_for_display (self->display));
-        g_set_weak_pointer (&self->monitor_manager, meta_monitor_manager_get 
());
+        g_set_weak_pointer (&self->monitor_manager, 
meta_backend_get_monitor_manager (self->backend));
+        g_set_weak_pointer (&self->image_cache, 
meta_background_image_cache_get_default ());
+
+        self->cancellable = g_cancellable_new ();
 
         self->background_group = meta_background_group_new ();
         clutter_actor_insert_child_below (self->window_group, 
self->background_group, NULL);
@@ -193,6 +331,36 @@
                                  G_CALLBACK (reinitialize_backgrounds),
                                  self,
                                  G_CONNECT_SWAPPED);
+
+        self->settings = g_settings_new (KIOSK_BACKGROUNDS_SCHEMA);
+
+        g_signal_connect_object (G_OBJECT (self->settings),
+                                 "changed::" 
KIOSK_BACKGROUNDS_PICTURE_OPTIONS_SETTING,
+                                 G_CALLBACK (on_settings_changed),
+                                 self,
+                                 G_CONNECT_SWAPPED);
+        g_signal_connect_object (G_OBJECT (self->settings),
+                                 "changed::" 
KIOSK_BACKGROUNDS_PICTURE_URI_SETTING,
+                                 G_CALLBACK (on_settings_changed),
+                                 self,
+                                 G_CONNECT_SWAPPED);
+        g_signal_connect_object (G_OBJECT (self->settings),
+                                 "changed::" 
KIOSK_BACKGROUNDS_COLOR_SHADING_TYPE_SETTING,
+                                 G_CALLBACK (on_settings_changed),
+                                 self,
+                                 G_CONNECT_SWAPPED);
+        g_signal_connect_object (G_OBJECT (self->settings),
+                                 "changed::" 
KIOSK_BACKGROUNDS_PRIMARY_COLOR_SETTING,
+                                 G_CALLBACK (on_settings_changed),
+                                 self,
+                                 G_CONNECT_SWAPPED);
+
+        g_signal_connect_object (G_OBJECT (self->settings),
+                                 "changed::" 
KIOSK_BACKGROUNDS_SECONDARY_COLOR_SETTING,
+                                 G_CALLBACK (on_settings_changed),
+                                 self,
+                                 G_CONNECT_SWAPPED);
+
         reinitialize_backgrounds (self);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/compositor/kiosk-compositor.c 
new/gnome-kiosk-44.0/compositor/kiosk-compositor.c
--- old/gnome-kiosk-43.0/compositor/kiosk-compositor.c  2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-compositor.c  2023-03-20 
16:46:45.000000000 +0100
@@ -306,7 +306,7 @@
         for (node = windows; node != NULL; node = node->next) {
                 MetaWindow *existing_window = node->data;
 
-                if (meta_window_is_fullscreen (existing_window)) {
+                if (meta_window_is_monitor_sized (existing_window)) {
                         return FALSE;
                 }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/compositor/kiosk-input-source-group.c 
new/gnome-kiosk-44.0/compositor/kiosk-input-source-group.c
--- old/gnome-kiosk-43.0/compositor/kiosk-input-source-group.c  2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-input-source-group.c  2023-03-20 
16:46:45.000000000 +0100
@@ -6,14 +6,18 @@
 
 #include <xkbcommon/xkbcommon.h>
 
+#include <meta/meta-context.h>
 #include <meta/meta-backend.h>
 
+#include <meta/display.h>
+
 #define GNOME_DESKTOP_USE_UNSTABLE_API
 #include <libgnome-desktop/gnome-languages.h>
 #include <libgnome-desktop/gnome-xkb-info.h>
 
 #include "kiosk-gobject-utils.h"
 #include "kiosk-input-sources-manager.h"
+#include "kiosk-compositor.h"
 
 #define KIOSK_INPUT_SOURCE_GROUP_MAX_LAYOUTS 3
 
@@ -22,9 +26,13 @@
         GObject                   parent;
 
         /* weak references */
+        KioskCompositor          *compositor;
         KioskInputSourcesManager *input_sources_manager;
         KioskInputEngineManager  *input_engine_manager;
         KioskXKeyboardManager    *x_keyboard_manager;
+        MetaDisplay              *display;
+        MetaContext              *context;
+        MetaBackend              *backend;
 
         /* strong references */
         char                     *input_engine_name;
@@ -37,7 +45,8 @@
 };
 enum
 {
-        PROP_INPUT_SOURCES_MANAGER = 1,
+        PROP_COMPOSITOR = 1,
+        PROP_INPUT_SOURCES_MANAGER,
         NUMBER_OF_PROPERTIES
 };
 
@@ -58,11 +67,13 @@
 static void kiosk_input_source_group_dispose (GObject *object);
 
 KioskInputSourceGroup *
-kiosk_input_source_group_new (KioskInputSourcesManager *input_sources_manager)
+kiosk_input_source_group_new (KioskCompositor          *compositor,
+                              KioskInputSourcesManager *input_sources_manager)
 {
         GObject *object;
 
         object = g_object_new (KIOSK_TYPE_INPUT_SOURCE_GROUP,
+                               "compositor", compositor,
                                "input-sources-manager", input_sources_manager,
                                NULL);
 
@@ -292,12 +303,12 @@
                 g_debug ("KioskInputSourceGroup: Setting keyboard mapping to 
[%s] (%s) [%s]",
                          layouts, variants, self->options);
 
-                meta_backend_set_keymap (meta_get_backend (), layouts, 
variants, self->options);
+                meta_backend_set_keymap (self->backend, layouts, variants, 
self->options);
         }
 
         if (!layout_group_already_locked) {
                 g_debug ("KioskInputSourceGroup: Locking layout to index %d", 
self->layout_index);
-                meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+                meta_backend_lock_layout_group (self->backend, 
self->layout_index);
         }
 
         if (keymap_already_set && layout_group_already_locked) {
@@ -357,7 +368,7 @@
         g_debug ("KioskInputSourceGroup: Switching from layout '%s' to next 
layout '%s'",
                  active_layout, layout_name);
 
-        meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+        meta_backend_lock_layout_group (self->backend, self->layout_index);
 
         return TRUE;
 }
@@ -381,7 +392,7 @@
         layout_to_activate = kiosk_input_source_group_get_selected_layout 
(self);
 
         g_debug ("KioskInputSourceGroup: First layout is '%s'", 
layout_to_activate);
-        meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+        meta_backend_lock_layout_group (self->backend, self->layout_index);
 }
 
 void
@@ -403,7 +414,7 @@
         layout_to_activate = kiosk_input_source_group_get_selected_layout 
(self);
 
         g_debug ("KioskInputSourceGroup: Last layout is '%s'", 
layout_to_activate);
-        meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+        meta_backend_lock_layout_group (self->backend, self->layout_index);
 }
 
 gboolean
@@ -438,7 +449,7 @@
         g_debug ("KioskInputSourceGroup: Switching from layout '%s' to next 
layout '%s'",
                  active_layout, layout_to_activate);
 
-        meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+        meta_backend_lock_layout_group (self->backend, self->layout_index);
 
         return TRUE;
 }
@@ -473,7 +484,7 @@
         g_debug ("KioskInputSourceGroup: Switching from layout '%s' to 
previous layout '%s'",
                  active_layout, layout_to_activate);
 
-        meta_backend_lock_layout_group (meta_get_backend (), 
self->layout_index);
+        meta_backend_lock_layout_group (self->backend, self->layout_index);
 
         return TRUE;
 }
@@ -488,6 +499,15 @@
         object_class->get_property = kiosk_input_source_group_get_property;
         object_class->dispose = kiosk_input_source_group_dispose;
 
+        kiosk_input_source_group_properties[PROP_COMPOSITOR] = 
g_param_spec_object ("compositor",
+                                                                               
     "compositor",
+                                                                               
     "compositor",
+                                                                               
     KIOSK_TYPE_COMPOSITOR,
+                                                                               
     G_PARAM_CONSTRUCT_ONLY
+                                                                               
     | G_PARAM_WRITABLE
+                                                                               
     | G_PARAM_STATIC_NAME
+                                                                               
     | G_PARAM_STATIC_NICK
+                                                                               
     | G_PARAM_STATIC_BLURB);
         kiosk_input_source_group_properties[PROP_INPUT_SOURCES_MANAGER] = 
g_param_spec_object ("input-sources-manager",
                                                                                
                "input-sources-manager",
                                                                                
                "input-sources-manager",
@@ -510,6 +530,9 @@
         KioskInputSourceGroup *self = KIOSK_INPUT_SOURCE_GROUP (object);
 
         switch (property_id) {
+        case PROP_COMPOSITOR:
+                g_set_weak_pointer (&self->compositor, g_value_get_object 
(value));
+                break;
         case PROP_INPUT_SOURCES_MANAGER:
                 g_set_weak_pointer (&self->input_sources_manager, 
g_value_get_object (value));
                 break;
@@ -554,6 +577,9 @@
 
         g_set_weak_pointer (&self->input_engine_manager, 
kiosk_input_sources_manager_get_input_engine_manager 
(self->input_sources_manager));
         g_set_weak_pointer (&self->x_keyboard_manager, 
kiosk_input_sources_manager_get_x_keyboard_manager 
(self->input_sources_manager));
+        g_set_weak_pointer (&self->display, meta_plugin_get_display 
(META_PLUGIN (self->compositor)));
+        g_set_weak_pointer (&self->context, meta_display_get_context 
(self->display));
+        g_set_weak_pointer (&self->backend, meta_context_get_backend 
(self->context));
 }
 
 static void
@@ -568,6 +594,9 @@
         g_clear_pointer (&self->variants, g_ptr_array_unref);
         g_clear_pointer (&self->layouts, g_ptr_array_unref);
 
+        g_clear_weak_pointer (&self->backend);
+        g_clear_weak_pointer (&self->context);
+        g_clear_weak_pointer (&self->display);
         g_clear_weak_pointer (&self->x_keyboard_manager);
         g_clear_weak_pointer (&self->input_engine_manager);
         g_clear_weak_pointer (&self->input_sources_manager);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/compositor/kiosk-input-source-group.h 
new/gnome-kiosk-44.0/compositor/kiosk-input-source-group.h
--- old/gnome-kiosk-43.0/compositor/kiosk-input-source-group.h  2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-input-source-group.h  2023-03-20 
16:46:45.000000000 +0100
@@ -2,6 +2,8 @@
 
 #include <glib-object.h>
 
+typedef struct _KioskCompositor KioskCompositor;
+
 typedef struct _KioskInputSourcesManager KioskInputSourcesManager;
 
 G_BEGIN_DECLS
@@ -13,7 +15,8 @@
                       KIOSK, INPUT_SOURCE_GROUP,
                       GObject);
 
-KioskInputSourceGroup *kiosk_input_source_group_new (KioskInputSourcesManager 
*manager);
+KioskInputSourceGroup *kiosk_input_source_group_new (KioskCompositor          
*compositor,
+                                                     KioskInputSourcesManager 
*manager);
 gboolean kiosk_input_source_group_add_layout (KioskInputSourceGroup 
*input_sources,
                                               const char            *layout,
                                               const char            *variant);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/compositor/kiosk-input-sources-manager.c 
new/gnome-kiosk-44.0/compositor/kiosk-input-sources-manager.c
--- old/gnome-kiosk-43.0/compositor/kiosk-input-sources-manager.c       
2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-input-sources-manager.c       
2023-03-20 16:46:45.000000000 +0100
@@ -751,7 +751,7 @@
         g_debug ("KioskInputSourcesManager: Adding new, empty keyboard mapping 
with options '%s'",
                  options);
 
-        input_source_group = kiosk_input_source_group_new (self);
+        input_source_group = kiosk_input_source_group_new (self->compositor, 
self);
         kiosk_input_source_group_set_options (input_source_group, options);
 
         kiosk_input_sources_manager_add_input_source_group (self, 
input_source_group);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/compositor/kiosk-x-keyboard-manager.c 
new/gnome-kiosk-44.0/compositor/kiosk-x-keyboard-manager.c
--- old/gnome-kiosk-43.0/compositor/kiosk-x-keyboard-manager.c  2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/compositor/kiosk-x-keyboard-manager.c  2023-03-20 
16:46:45.000000000 +0100
@@ -8,6 +8,7 @@
 #include <meta/util.h>
 
 #include <meta/meta-backend.h>
+#include <meta/meta-context.h>
 #include <meta/meta-x11-display.h>
 #include <meta/meta-x11-errors.h>
 
@@ -25,6 +26,7 @@
         KioskCompositor *compositor;
         MetaBackend     *backend;
         MetaDisplay     *display;
+        MetaContext     *context;
         Display         *x_server_display;
 
         /* strong references */
@@ -528,8 +530,9 @@
 
         self->cancellable = g_cancellable_new ();
 
-        g_set_weak_pointer (&self->backend, meta_get_backend ());
         g_set_weak_pointer (&self->display, meta_plugin_get_display 
(META_PLUGIN (self->compositor)));
+        g_set_weak_pointer (&self->context, meta_display_get_context 
(self->display));
+        g_set_weak_pointer (&self->backend, meta_context_get_backend 
(self->context));
 
         self->pending_layout_index = -1;
 
@@ -557,6 +560,7 @@
         g_clear_pointer (&self->options, g_free);
 
         g_clear_weak_pointer (&self->display);
+        g_clear_weak_pointer (&self->context);
         g_clear_weak_pointer (&self->backend);
         g_clear_weak_pointer (&self->compositor);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/compositor/main.c 
new/gnome-kiosk-44.0/compositor/main.c
--- old/gnome-kiosk-43.0/compositor/main.c      2022-09-20 17:42:16.000000000 
+0200
+++ new/gnome-kiosk-44.0/compositor/main.c      2023-03-20 16:46:45.000000000 
+0100
@@ -52,6 +52,12 @@
         }
 }
 
+static void
+set_dconf_profile (void)
+{
+        setenv ("DCONF_PROFILE", "gnomekiosk", TRUE);
+}
+
 static gboolean
 on_termination_signal (MetaContext *context)
 {
@@ -74,6 +80,7 @@
         signal (SIGPIPE, SIG_IGN);
 
         set_working_directory ();
+        set_dconf_profile ();
 
         context = meta_create_context ("Kiosk");
         meta_context_add_option_entries (context, kiosk_options, 
GETTEXT_PACKAGE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/input-selector/kiosk-input-selector-application.c 
new/gnome-kiosk-44.0/input-selector/kiosk-input-selector-application.c
--- old/gnome-kiosk-43.0/input-selector/kiosk-input-selector-application.c      
2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/input-selector/kiosk-input-selector-application.c      
2023-03-20 16:46:45.000000000 +0100
@@ -192,7 +192,7 @@
         windows = gtk_application_get_windows (GTK_APPLICATION (self));
         window = GTK_WIDGET (g_list_first (windows)->data);
 
-        gtk_widget_show (GTK_WIDGET (window));
+        gtk_widget_set_visible (GTK_WIDGET (window), TRUE);
 
         return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/kiosk-script/desktop/org.gnome.Kiosk.Script.desktop.in.in 
new/gnome-kiosk-44.0/kiosk-script/desktop/org.gnome.Kiosk.Script.desktop.in.in
--- 
old/gnome-kiosk-43.0/kiosk-script/desktop/org.gnome.Kiosk.Script.desktop.in.in  
    2022-09-20 17:42:16.000000000 +0200
+++ 
new/gnome-kiosk-44.0/kiosk-script/desktop/org.gnome.Kiosk.Script.desktop.in.in  
    2023-03-20 16:46:45.000000000 +0100
@@ -2,3 +2,4 @@
 Name=Kiosk Script
 Type=Application
 Exec=gnome-kiosk-script
+X-GNOME-HiddenUnderSystemd=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/meson.build 
new/gnome-kiosk-44.0/meson.build
--- old/gnome-kiosk-43.0/meson.build    2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/meson.build    2023-03-20 16:46:45.000000000 +0100
@@ -1,5 +1,5 @@
 project('gnome-kiosk', 'c',
-        version: '43.0'
+        version: '44.0'
 )
 add_project_arguments('-D_GNU_SOURCE',
         language: 'c'
@@ -34,7 +34,13 @@
 
 meson.add_install_script ('meson/postinstall.py')
 
-mutter_dependency = dependency('libmutter-11')
+mutter_api_version = 12
+libmutter_name = 'libmutter-@0@'.format(mutter_api_version)
+libmutter_cogl_name = 'mutter-cogl-@0@'.format(mutter_api_version)
+libmutter_cogl_pango_name = 'mutter-cogl-pango-@0@'.format(mutter_api_version)
+libmutter_clutter_name = 'mutter-clutter-@0@'.format(mutter_api_version)
+
+mutter_dependency = dependency(libmutter_name)
 mutter_libdir = mutter_dependency.get_pkgconfig_variable('typelibdir')
 
 systemd_user_unit_dir = 
dependency('systemd').get_pkgconfig_variable('systemduserunitdir',
@@ -103,9 +109,9 @@
 compositor_dependencies += dependency('gnome-desktop-3.0')
 compositor_dependencies += dependency('gobject-2.0')
 compositor_dependencies += dependency('ibus-1.0')
-compositor_dependencies += dependency('mutter-cogl-11')
-compositor_dependencies += dependency('mutter-cogl-pango-11')
-compositor_dependencies += dependency('mutter-clutter-11')
+compositor_dependencies += dependency(libmutter_cogl_name)
+compositor_dependencies += dependency(libmutter_cogl_pango_name)
+compositor_dependencies += dependency(libmutter_clutter_name)
 compositor_dependencies += mutter_dependency
 compositor_dependencies += systemd_dependency
 
@@ -172,6 +178,39 @@
         install_dir: systemd_user_unit_dir
 )
 
+systemd_service_config_data = configuration_data()
+systemd_service_config_data.set('bindir', bindir)
+
+dconf_config_data = configuration_data()
+dconf_config_data.set('PACKAGE', meson.project_name())
+dconf_config_data.set('DATADIR', datadir)
+
+dconf_profile_dir = join_paths(datadir, 'dconf/profile')
+dconf = configure_file(
+        input: 'compositor/data/dconf/gnomekiosk.in',
+        output: '@BASENAME@.configured',
+        configuration: dconf_config_data,
+)
+install_data(dconf,
+        install_dir: dconf_profile_dir,
+        rename: 'gnomekiosk'
+)
+
+dconf_dir = join_paths(datadir, meson.project_name())
+dconf_defaults_input_dir = join_paths (meson.current_source_dir(), 
'compositor/data/dconf/defaults')
+dconf_defaults = custom_target('gnomekiosk.dconf.compiled',
+        output: 'gnomekiosk.dconf.compiled',
+        input:  'compositor/data/dconf/defaults/gnomekiosk.dconf',
+        command: [
+                find_program('dconf'),
+                'compile',
+                '@OUTPUT@',
+                dconf_defaults_input_dir
+        ],
+        install: true,
+        install_dir: dconf_dir
+)
+
 install_data('kiosk-script/gnome-kiosk-script',
         install_dir: bindir,
        install_mode: 'rwxr-xr-x'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-kiosk-43.0/scripts/check-format.sh 
new/gnome-kiosk-44.0/scripts/check-format.sh
--- old/gnome-kiosk-43.0/scripts/check-format.sh        2022-09-20 
17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/scripts/check-format.sh        2023-03-20 
16:46:45.000000000 +0100
@@ -25,16 +25,24 @@
     git stash apply
 fi
 
-find -name '*.[ch]' -exec uncrustify -q -c scripts/latest-uncrustify.cfg 
--replace {} \;
+git ls-files '*.[ch]' | while read file; do
+    uncrustify -q -c scripts/latest-uncrustify.cfg --replace "${file}" \;
+done
 
 echo > after
-find -name '*.[ch]' -exec git diff -- {} \; >> after
+git ls-files '*.[ch]' | while read file; do
+    git diff -- "${file}" \; >> after
+done
 
 git reset --hard $UPSTREAM_BRANCH
-find -name '*.[ch]' -exec uncrustify -q -c scripts/latest-uncrustify.cfg 
--replace {} \;
+git ls-files '*.[ch]' | while read file; do
+    uncrustify -q -c scripts/latest-uncrustify.cfg --replace "${file}" \;
+done
 
 echo > before
-find -name '*.[ch]' -exec git diff -- {} \; >> before
+git ls-files '*.[ch]' | while read file; do
+    git diff -- "${file}" \; >> before
+done
 
 interdiff --no-revert-omitted before after > diff
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-kiosk-43.0/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in 
new/gnome-kiosk-44.0/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in
--- old/gnome-kiosk-43.0/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in     
2022-09-20 17:42:16.000000000 +0200
+++ new/gnome-kiosk-44.0/search-app/org.gnome.Kiosk.SearchApp.desktop.in.in     
2023-03-20 16:46:45.000000000 +0100
@@ -2,7 +2,7 @@
 Type=Application
 Name=Search Appliance
 Comment=Sample Search Appliance Application for GNOME Kiosk
-Exec=@bindir@/firefox --kiosk --private-window --new-instance  
http://www.google.com
+Exec=@bindir@/firefox --kiosk --private-window --new-instance  
https://www.google.com
 Categories=GNOME;GTK;Core;
 OnlyShowIn=GNOME;
 NoDisplay=true

++++++ gnome-kiosk.obsinfo ++++++
--- /var/tmp/diff_new_pack.5dHSCs/_old  2023-03-24 15:20:06.698791131 +0100
+++ /var/tmp/diff_new_pack.5dHSCs/_new  2023-03-24 15:20:06.702791152 +0100
@@ -1,5 +1,5 @@
 name: gnome-kiosk
-version: 43.0
-mtime: 1663688536
-commit: 115bb9a291bc5d1b29f043b9a56e9cee91782552
+version: 44.0
+mtime: 1679327205
+commit: 3f4dcd82f06389a1764df71f1f91a5c4b1ddfacc
 

Reply via email to