Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package budgie-session for openSUSE:Factory 
checked in at 2026-06-25 10:51:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/budgie-session (Old)
 and      /work/SRC/openSUSE:Factory/.budgie-session.new.2088 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "budgie-session"

Thu Jun 25 10:51:48 2026 rev:2 rq:1361465 version:1.0.0+0

Changes:
--------
--- /work/SRC/openSUSE:Factory/budgie-session/budgie-session.changes    
2024-02-04 19:07:26.916818515 +0100
+++ /work/SRC/openSUSE:Factory/.budgie-session.new.2088/budgie-session.changes  
2026-06-25 10:56:01.614933702 +0200
@@ -1,0 +2,13 @@
+Sat Jan 24 21:35:21 UTC 2026 - Callum Farmer <[email protected]>
+
+- Update to version 1.0.0+0:
+  * Bump for stable release
+  * Bump release to 1.0.0-preview.2
+  * budgie-desktop Autostartfolder (#8)
+  * Bump meson version for preview 1
+  * Add a wayland compositor check executable used to test if a wayland 
compositor is started; primarily for wlroot based compositors where we cannot 
depend on the wayland-socket being set at the end of the compositor startup
+  * Cleanup using gint rather than int; add more explanatory comments
+  * Support X-GNOME-Autostart-Delay for autostart apps - Closes #3
+  * do not fail whale: prevents otherwise usable wayland session
+
+-------------------------------------------------------------------

Old:
----
  budgie-session-0.9.1.obscpio

New:
----
  budgie-session-1.0.0+0.obscpio

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

Other differences:
------------------
++++++ budgie-session.spec ++++++
--- /var/tmp/diff_new_pack.xhOqOW/_old  2026-06-25 10:56:02.726972049 +0200
+++ /var/tmp/diff_new_pack.xhOqOW/_new  2026-06-25 10:56:02.726972049 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package budgie-session
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 # Copyright (c) 2024 Callum Farmer <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -16,19 +16,20 @@
 # Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
-%define major_ver 0
+
+%define major_ver 1
 Name:           budgie-session
-Version:        0.9.1
+Version:        1.0.0+0
 Release:        0
 Summary:        Fork of gnome-session
 License:        GPL-2.0-or-later
 Group:          System/GUI/Other
 URL:            https://github.com/BuddiesOfBudgie/budgie-session
 Source0:        %{name}-%{version}.tar.xz
-BuildRequires:  meson
-BuildRequires:  pkgconfig
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  fdupes
+BuildRequires:  meson
+BuildRequires:  pkgconfig
 BuildRequires:  xsltproc
 BuildRequires:  pkgconfig(egl)
 BuildRequires:  pkgconfig(epoxy)
@@ -64,7 +65,6 @@
 %meson \
        -D docbook=false \
        -D systemduserunitdir=%{_userunitdir} \
-       --libexecdir=%{_libexecdir}/%{name} \
        %{nil}
 %meson_build
 
@@ -76,7 +76,7 @@
 %{_bindir}/budgie-session
 %{_bindir}/budgie-session-inhibit
 %{_bindir}/budgie-session-quit
-%{_libexecdir}/%{name}
+%{_libexecdir}/budgie-session*
 %{_datadir}/%{name}
 %{_datadir}/glib-2.0/schemas/org.buddiesofbudgie.SessionManager.gschema.xml
 %{_mandir}/man1/budgie-session.1%{?ext_man}

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xhOqOW/_old  2026-06-25 10:56:02.758973154 +0200
+++ /var/tmp/diff_new_pack.xhOqOW/_new  2026-06-25 10:56:02.762973291 +0200
@@ -2,9 +2,9 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param 
name="url">https://github.com/BuddiesOfBudgie/budgie-session.git</param>
-    <param name="revision">41e4a521fd737921f0fe5e0ef503377896c2aa76</param>
+    <param name="revision">9edd901a6225bf7762faa709b6b2554fa538f766</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
-    <param name="versionrewrite-pattern">v?(.*)\+0</param>
+    <param name="versionrewrite-pattern">v?(.*)</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="tar" mode="buildtime"/>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.xhOqOW/_old  2026-06-25 10:56:02.798974532 +0200
+++ /var/tmp/diff_new_pack.xhOqOW/_new  2026-06-25 10:56:02.802974671 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/BuddiesOfBudgie/budgie-session.git</param>
-              <param 
name="changesrevision">41e4a521fd737921f0fe5e0ef503377896c2aa76</param></service></servicedata>
+              <param 
name="changesrevision">9edd901a6225bf7762faa709b6b2554fa538f766</param></service></servicedata>
 (No newline at EOF)
 

++++++ budgie-session-0.9.1.obscpio -> budgie-session-1.0.0+0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/gnome-session/gsm-app.c 
new/budgie-session-1.0.0+0/gnome-session/gsm-app.c
--- old/budgie-session-0.9.1/gnome-session/gsm-app.c    2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-app.c  2026-01-10 
20:48:02.000000000 +0100
@@ -327,6 +327,7 @@
         klass->impl_provides = NULL;
         klass->impl_get_provides = NULL;
         klass->impl_is_running = NULL;
+        klass->impl_peek_autostart_delay = NULL;
 
         g_object_class_install_property (object_class,
                                          PROP_PHASE,
@@ -536,7 +537,22 @@
 gsm_app_stop (GsmApp  *app,
               GError **error)
 {
-        return GSM_APP_GET_CLASS (app)->impl_stop (app, error);
+        if (gsm_app_is_running (app))
+                return GSM_APP_GET_CLASS (app)->impl_stop (app, error);
+
+        return TRUE;
+}
+
+int
+gsm_app_peek_autostart_delay (GsmApp *app)
+{
+        g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+        if (GSM_APP_GET_CLASS (app)->impl_peek_autostart_delay) {
+                return GSM_APP_GET_CLASS (app)->impl_peek_autostart_delay 
(app);
+        } else {
+                return 0;
+        }
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/gnome-session/gsm-app.h 
new/budgie-session-1.0.0+0/gnome-session/gsm-app.h
--- old/budgie-session-0.9.1/gnome-session/gsm-app.h    2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-app.h  2026-01-10 
20:48:02.000000000 +0100
@@ -49,6 +49,7 @@
                                                        GError    **error);
         gboolean    (*impl_stop)                      (GsmApp     *app,
                                                        GError    **error);
+        gint        (*impl_peek_autostart_delay)      (GsmApp     *app);
         gboolean    (*impl_provides)                  (GsmApp     *app,
                                                        const char *service);
         char **     (*impl_get_provides)              (GsmApp     *app);
@@ -109,6 +110,7 @@
 gboolean         gsm_app_get_registered                 (GsmApp     *app);
 void             gsm_app_set_registered                 (GsmApp     *app,
                                                          gboolean  registered);
+int              gsm_app_peek_autostart_delay           (GsmApp     *app);
 
 gboolean         gsm_app_save_to_keyfile                (GsmApp    *app,
                                                          GKeyFile  *keyfile,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/budgie-session-0.9.1/gnome-session/gsm-autostart-app.c 
new/budgie-session-1.0.0+0/gnome-session/gsm-autostart-app.c
--- old/budgie-session-0.9.1/gnome-session/gsm-autostart-app.c  2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-autostart-app.c        
2026-01-10 20:48:02.000000000 +0100
@@ -20,6 +20,7 @@
 #include <config.h>
 
 #include <ctype.h>
+#include <stdlib.h>
 #include <string.h>
 #include <sys/wait.h>
 #include <errno.h>
@@ -73,6 +74,7 @@
         char                 *condition_string;
         gboolean              condition;
         gboolean              autorestart;
+        int                   autostart_delay;
 
         GFileMonitor         *condition_monitor;
         guint                 condition_notify_id;
@@ -111,6 +113,7 @@
         priv->pid = -1;
         priv->condition_monitor = NULL;
         priv->condition = FALSE;
+        priv->autostart_delay = -1;
 }
 
 static gboolean
@@ -617,6 +620,21 @@
                                                                    
"AutostartCondition");
         setup_condition_monitor (app);
 
+        const char *delay;
+        delay = g_desktop_app_info_get_string (priv->app_info,
+                                               GSM_AUTOSTART_APP_DELAY_KEY);
+
+        if (delay != NULL) {
+                priv->autostart_delay = strtol (delay, NULL, 10);
+
+                if (priv->autostart_delay < 0) {
+                        g_warning ("Invalid autostart delay of %d for %s",
+                                   priv->autostart_delay,
+                                   gsm_app_peek_id (GSM_APP (app)));
+                        priv->autostart_delay = -1;
+                }
+        }
+
         g_object_set (app,
                       "phase", phase,
                       "startup-id", startup_id,
@@ -1352,6 +1370,14 @@
         return g_app_info_get_id (G_APP_INFO (priv->app_info));
 }
 
+static int
+gsm_autostart_app_peek_autostart_delay (GsmApp *app)
+{
+        GsmAutostartAppPrivate *priv = gsm_autostart_app_get_instance_private 
(GSM_AUTOSTART_APP (app));
+
+        return priv->autostart_delay;
+}
+
 static gboolean
 gsm_autostart_app_initable_init (GInitable *initable,
                                  GCancellable *cancellable,
@@ -1472,6 +1498,7 @@
         app_class->impl_has_autostart_condition = 
gsm_autostart_app_has_autostart_condition;
         app_class->impl_get_app_id = gsm_autostart_app_get_app_id;
         app_class->impl_get_autorestart = gsm_autostart_app_get_autorestart;
+        app_class->impl_peek_autostart_delay = 
gsm_autostart_app_peek_autostart_delay;
         app_class->impl_save_to_keyfile = gsm_autostart_app_save_to_keyfile;
 
         props[PROP_DESKTOP_FILENAME] =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/budgie-session-0.9.1/gnome-session/gsm-autostart-app.h 
new/budgie-session-1.0.0+0/gnome-session/gsm-autostart-app.h
--- old/budgie-session-0.9.1/gnome-session/gsm-autostart-app.h  2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-autostart-app.h        
2026-01-10 20:48:02.000000000 +0100
@@ -55,6 +55,7 @@
 #define GSM_AUTOSTART_APP_DBUS_PATH_KEY   "X-GNOME-DBus-Path"
 #define GSM_AUTOSTART_APP_DBUS_ARGS_KEY   "X-GNOME-DBus-Start-Arguments"
 #define GSM_AUTOSTART_APP_DISCARD_KEY     "X-GNOME-Autostart-discard-exec"
+#define GSM_AUTOSTART_APP_DELAY_KEY       "X-GNOME-Autostart-Delay"
 
 G_END_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/gnome-session/gsm-manager.c 
new/budgie-session-1.0.0+0/gnome-session/gsm-manager.c
--- old/budgie-session-0.9.1/gnome-session/gsm-manager.c        2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-manager.c      2026-01-10 
20:48:02.000000000 +0100
@@ -291,9 +291,10 @@
                          NULL);
 #endif
 
-        gsm_fail_whale_dialog_we_failed (FALSE,
+        /*gsm_fail_whale_dialog_we_failed (FALSE,
                                          allow_logout,
                                          extensions);
+                                         */
 }
 
 static void
@@ -415,7 +416,8 @@
                 } else {
                         g_debug ("GsmManager: stopping app %s", 
gsm_app_peek_id (app));
 
-                        /* If we don't have a client then we should try to 
kill the app */
+                        /* If we don't have a client then we should try to 
kill the app ,
+                         * if it is running */
                         error = NULL;
                         res = gsm_app_stop (app, &error);
                         if (! res) {
@@ -755,11 +757,40 @@
         return FALSE;
 }
 
+/*
+ Note - app requires to be passed by reference to be used; its cleaned up 
before exit
+*/
+static gboolean
+_autostart_delay_timeout (GsmApp *app)
+{
+        GError *error = NULL;
+        gboolean res;
+
+        if (!gsm_app_peek_is_disabled (app)
+            && !gsm_app_peek_is_conditionally_disabled (app)) {
+                res = gsm_app_start (app, &error);
+                if (!res) {
+                        if (error != NULL) {
+                                g_warning ("Could not launch application '%s': 
%s",
+                                           gsm_app_peek_app_id (app),
+                                           error->message);
+                                g_error_free (error);
+                        }
+                }
+        }
+
+        /* we unref here since we ref this on the initial call*/
+        g_object_unref (app);
+
+        return FALSE;
+}
+
 static gboolean
 _start_app (const char *id,
             GsmApp     *app,
             GsmManager *manager)
 {
+        int delay;
         GsmManagerPrivate *priv = gsm_manager_get_instance_private (manager);
 
         if (gsm_app_peek_phase (app) != priv->phase) {
@@ -779,6 +810,18 @@
                 goto out;
         }
 
+        /* Only accept an autostart delay for the application phase */
+        if (priv->phase == GSM_MANAGER_PHASE_APPLICATION) {
+                delay = gsm_app_peek_autostart_delay (app);
+                if (delay > 0) {
+                        g_timeout_add_seconds (delay,
+                                               
(GSourceFunc)_autostart_delay_timeout,
+                                               g_object_ref (app));
+                        g_debug ("GsmManager: %s is scheduled to start in %d 
seconds", id, delay);
+                        goto out;
+                }
+        }
+
         if (!start_app_or_warn (manager, app))
                 goto out;
 
@@ -1464,11 +1507,12 @@
                 return FALSE;
         }
 
-        g_debug ("GsmManager:\tID: 
%s\tapp-id:%s\tis-disabled:%d\tis-conditionally-disabled:%d",
+        g_debug ("GsmManager:\tID: 
%s\tapp-id:%s\tis-disabled:%d\tis-conditionally-disabled:%d\tis-delayed:%d",
                  gsm_app_peek_id (app),
                  gsm_app_peek_app_id (app),
                  gsm_app_peek_is_disabled (app),
-                 gsm_app_peek_is_conditionally_disabled (app));
+                 gsm_app_peek_is_conditionally_disabled (app),
+                 (gsm_app_peek_autostart_delay (app) > 0));
 
         return FALSE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/gnome-session/gsm-util.c 
new/budgie-session-1.0.0+0/gnome-session/gsm-util.c
--- old/budgie-session-0.9.1/gnome-session/gsm-util.c   2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/gsm-util.c 2026-01-10 
20:48:02.000000000 +0100
@@ -248,7 +248,7 @@
         for (i = 0; system_data_dirs[i]; i++) {
                 g_ptr_array_add (dirs,
                                  g_build_filename (system_data_dirs[i],
-                                                   "gnome", "autostart", 
NULL));
+                                                   "budgie-desktop", 
"autostart", NULL));
         }
 
         system_config_dirs = g_get_system_config_dirs ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/gnome-session/main.c 
new/budgie-session-1.0.0+0/gnome-session/main.c
--- old/budgie-session-0.9.1/gnome-session/main.c       2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/gnome-session/main.c     2026-01-10 
20:48:02.000000000 +0100
@@ -87,7 +87,7 @@
                         gsm_quit ();
                 else {
                         g_warning ("Lost name on bus: %s", name);
-                        gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
+                        //gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
                 }
         } else {
                 g_debug ("Calling name lost callback function");
@@ -166,7 +166,7 @@
         }
 
         if (!gsm_session_fill (manager, session_name)) {
-                gsm_fail_whale_dialog_we_failed (FALSE, TRUE, NULL);
+                //gsm_fail_whale_dialog_we_failed (FALSE, TRUE, NULL);
         }
 
         _gsm_manager_set_renderer (manager, gl_renderer);
@@ -204,7 +204,7 @@
                 return TRUE;
 
         /* Just a sanity check to prevent infinite recursion if
-         * dbus-launch fails to set DBUS_SESSION_BUS_ADDRESS 
+         * dbus-launch fails to set DBUS_SESSION_BUS_ADDRESS
          */
         g_return_val_if_fail (!g_str_has_prefix (argv[0], "dbus-launch"),
                               TRUE);
@@ -218,9 +218,9 @@
                 new_argv[i + 2] = argv[i];
         }
         new_argv[i + 2] = NULL;
-        
+
         if (!execvp ("dbus-launch", new_argv)) {
-                g_set_error (error, 
+                g_set_error (error,
                              G_SPAWN_ERROR,
                              G_SPAWN_ERROR_FAILED,
                              "No session bus and could not exec dbus-launch: 
%s",
@@ -509,13 +509,13 @@
         }
 
         if (gl_failed) {
-                gsm_fail_whale_dialog_we_failed (FALSE, TRUE, NULL);
+                //gsm_fail_whale_dialog_we_failed (FALSE, TRUE, NULL);
                 gsm_main ();
                 exit (1);
         }
 
         if (please_fail) {
-                gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
+                //gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
                 gsm_main ();
                 exit (1);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/meson.build 
new/budgie-session-1.0.0+0/meson.build
--- old/budgie-session-0.9.1/meson.build        2024-01-04 22:31:40.000000000 
+0100
+++ new/budgie-session-1.0.0+0/meson.build      2026-01-10 20:48:02.000000000 
+0100
@@ -1,6 +1,6 @@
 project(
   'budgie-session', 'c',
-  version: '0.9.1',
+  version: '1.0.0',
   license: 'GPL2+',
   default_options: 'buildtype=debugoptimized',
   meson_version: '>= 0.58.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/scripts/mkRelease.sh 
new/budgie-session-1.0.0+0/scripts/mkRelease.sh
--- old/budgie-session-0.9.1/scripts/mkRelease.sh       2024-01-04 
22:31:40.000000000 +0100
+++ new/budgie-session-1.0.0+0/scripts/mkRelease.sh     2026-01-10 
20:48:02.000000000 +0100
@@ -12,4 +12,4 @@
 mv build/meson-dist/$TAR $VTAR
 
 gpg --armor --detach-sign $VTAR
-gpg --verify "${VTAR}.asc"
\ No newline at end of file
+gpg --verify "${VTAR}.asc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/budgie-session-0.9.1/tools/gnome-session-compositor-ready.c 
new/budgie-session-1.0.0+0/tools/gnome-session-compositor-ready.c
--- old/budgie-session-0.9.1/tools/gnome-session-compositor-ready.c     
1970-01-01 01:00:00.000000000 +0100
+++ new/budgie-session-1.0.0+0/tools/gnome-session-compositor-ready.c   
2026-01-10 20:48:02.000000000 +0100
@@ -0,0 +1,96 @@
+/*
+ * This file is part of budgie-session.
+ *
+ * Copyright Budgie Desktop Developers
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+#include <wayland-client.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <time.h>
+
+static bool have_compositor = false;
+static bool have_seat = false;
+static bool have_xdg_wm_base = false;
+
+static void handle_global(void *data,
+                          struct wl_registry *registry,
+                          uint32_t name,
+                          const char *interface,
+                          uint32_t version) {
+    if (strcmp(interface, "wl_compositor") == 0) {
+        have_compositor = true;
+        printf("✅ Found wl_compositor\n");
+    } else if (strcmp(interface, "wl_seat") == 0) {
+        have_seat = true;
+        printf("✅ Found wl_seat\n");
+    } else if (strcmp(interface, "xdg_wm_base") == 0) {
+        have_xdg_wm_base = true;
+        printf("✅ Found xdg_wm_base\n");
+    }
+}
+
+static void handle_global_remove(void *data,
+                                 struct wl_registry *registry,
+                                 uint32_t name) {
+    // Nothing needed here for readiness check
+}
+
+static const struct wl_registry_listener registry_listener = {
+    .global = handle_global,
+    .global_remove = handle_global_remove,
+};
+
+int main(int argc, char *argv[]) {
+    struct wl_display *display = wl_display_connect(NULL);
+    if (!display) {
+        fprintf(stderr, "❌ Failed to connect to Wayland display\n");
+        return 1;
+    }
+
+    struct wl_registry *registry = wl_display_get_registry(display);
+    if (!registry) {
+        fprintf(stderr, "❌ Failed to get Wayland registry\n");
+        wl_display_disconnect(display);
+        return 1;
+    }
+
+    wl_registry_add_listener(registry, &registry_listener, NULL);
+
+    // Roundtrip once to get initial globals
+    wl_display_roundtrip(display);
+
+    // Poll until we have everything or timeout
+    const int timeout_sec = 30;
+    time_t start = time(NULL);
+
+    while (!(have_compositor && have_seat && have_xdg_wm_base)) {
+        if (time(NULL) - start > timeout_sec) {
+            fprintf(stderr, "❌ Timeout waiting for compositor readiness\n");
+            wl_display_disconnect(display);
+            return 2;
+        }
+        wl_display_dispatch(display);
+    }
+
+    printf("🎉 Compositor is fully initialized!\n");
+    wl_display_disconnect(display);
+    return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/budgie-session-0.9.1/tools/meson.build 
new/budgie-session-1.0.0+0/tools/meson.build
--- old/budgie-session-0.9.1/tools/meson.build  2024-01-04 22:31:40.000000000 
+0100
+++ new/budgie-session-1.0.0+0/tools/meson.build        2026-01-10 
20:48:02.000000000 +0100
@@ -11,6 +11,10 @@
   ['gnome-session-inhibit', session_deps, cflags, session_bindir]
 ]
 
+wayland_deps = [dependency('wayland-client')]
+programs += [['gnome-session-compositor-ready', wayland_deps, cflags, 
session_libexecdir]]
+
+
 if enable_systemd_session
   programs += [['gnome-session-ctl', session_bin_deps, cflags, 
session_libexecdir]]
 endif

++++++ budgie-session.obsinfo ++++++
--- /var/tmp/diff_new_pack.xhOqOW/_old  2026-06-25 10:56:03.242989844 +0200
+++ /var/tmp/diff_new_pack.xhOqOW/_new  2026-06-25 10:56:03.246989982 +0200
@@ -1,5 +1,5 @@
 name: budgie-session
-version: 0.9.1
-mtime: 1704403900
-commit: 41e4a521fd737921f0fe5e0ef503377896c2aa76
+version: 1.0.0+0
+mtime: 1768074482
+commit: 9edd901a6225bf7762faa709b6b2554fa538f766
 

Reply via email to