Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package cinnamon-session for 
openSUSE:Factory checked in at 2025-01-13 17:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-session (Old)
 and      /work/SRC/openSUSE:Factory/.cinnamon-session.new.1881 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinnamon-session"

Mon Jan 13 17:50:00 2025 rev:31 rq:1237110 version:6.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon-session/cinnamon-session.changes        
2024-11-12 19:24:18.970732554 +0100
+++ 
/work/SRC/openSUSE:Factory/.cinnamon-session.new.1881/cinnamon-session.changes  
    2025-01-13 17:50:14.718913916 +0100
@@ -1,0 +2,8 @@
+Sun Jan 12 04:23:09 UTC 2025 - Marguerite Su <i...@marguerite.su>
+
+- update to 6.4.0
+  * Refactor/simplify end-session dialog handling to use a native-
+    Cinnamon dialog if available
+  * autostart: Blacklist nm-applet
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-session-6.2.1.tar.gz

New:
----
  cinnamon-session-6.4.0.tar.gz

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

Other differences:
------------------
++++++ cinnamon-session.spec ++++++
--- /var/tmp/diff_new_pack.O1MSbv/_old  2025-01-13 17:50:15.170932592 +0100
+++ /var/tmp/diff_new_pack.O1MSbv/_new  2025-01-13 17:50:15.170932592 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package cinnamon-session
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           cinnamon-session
-Version:        6.2.1
+Version:        6.4.0
 Release:        0
 Summary:        The session manager for the Cinnamon Desktop
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ cinnamon-session-6.2.1.tar.gz -> cinnamon-session-6.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-session-6.2.1/.gitignore 
new/cinnamon-session-6.4.0/.gitignore
--- old/cinnamon-session-6.2.1/.gitignore       2024-07-19 15:51:40.000000000 
+0200
+++ new/cinnamon-session-6.4.0/.gitignore       2024-11-27 10:23:46.000000000 
+0100
@@ -45,6 +45,7 @@
 debian/*.debhelper.log
 debian/*.substvars
 debian/.debhelper/
+debian/*.debhelper
 debian/cinnamon-session-common/
 debian/cinnamon-session/
 debian/debhelper-build-stamp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session/csm-manager.c 
new/cinnamon-session-6.4.0/cinnamon-session/csm-manager.c
--- old/cinnamon-session-6.2.1/cinnamon-session/csm-manager.c   2024-07-19 
15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session/csm-manager.c   2024-11-27 
10:23:46.000000000 +0100
@@ -40,6 +40,7 @@
 
 #include "csm-manager.h"
 #include "csm-exported-manager.h"
+#include "csm-exported-dialog.h"
 
 #include "csm-store.h"
 #include "csm-inhibitor.h"
@@ -85,7 +86,7 @@
 #define CSM_MANAGER_SCHEMA        "org.cinnamon.SessionManager"
 #define KEY_AUTOSAVE              "auto-save-session"
 #define KEY_LOGOUT_PROMPT         "logout-prompt"
-#define KEY_SHOW_FALLBACK_WARNING "show-fallback-warning"
+#define KEY_FORCE_GTK_END_SESSION "force-gtk-end-session-dialog"
 #define KEY_BLACKLIST             "autostart-blacklist"
 #define KEY_PREFER_HYBRID_SLEEP   "prefer-hybrid-sleep"
 #define KEY_SUSPEND_HIBERNATE     "suspend-then-hibernate"
@@ -122,12 +123,6 @@
         CsmPresence            *presence;
         CsmXsmpServer          *xsmp_server;
 
-        GDBusConnection        *dialog_connection;
-        GDBusServer            *dialog_server;
-        guint                   dialog_reg_id;
-        CsmLogoutAction         dialog_action;
-        gchar                  *dialog_bus_address;
-
         char                   *session_name;
         gboolean                is_fallback_session : 1;
 
@@ -160,6 +155,10 @@
         GDBusProxy             *bus_proxy;
         GDBusConnection        *connection;
         CsmExportedManager     *skeleton;
+        CsmExportedDialog      *dialog_skeleton;
+        GDBusProxy             *cinnamon_proxy;
+
+        CsmLogoutAction         dialog_action;
 
         gboolean                dbus_disconnected : 1;
         guint                   name_owner_id;
@@ -182,11 +181,17 @@
         LAST_SIGNAL
 };
 
+typedef enum {
+        DIALOG_MODE_REBOOT,
+        DIALOG_MODE_SHUTDOWN,
+        DIALOG_MODE_LOGOUT
+} DialogMode;
+
 static guint signals [LAST_SIGNAL] = { 0 };
 
 static void     show_shutdown_dialog (CsmManager *manager,
                                       gboolean    is_reboot);
-static void     terminate_dialog     (void);
+static void     close_end_session_dialog     (CsmManager *manager);
 static void     show_logout_dialog   (CsmManager *manager);
 
 static void     user_logout (CsmManager           *manager,
@@ -267,14 +272,6 @@
 on_required_app_failure (CsmManager  *manager,
                          CsmApp      *app)
 {
-        gboolean allow_logout;
-
-        if (csm_system_is_login_session (manager->priv->system)) {
-                allow_logout = FALSE;
-        } else {
-                allow_logout = !_log_out_is_locked_down (manager);
-        }
-
         csm_util_init_error (FALSE, "A program required by the session failed 
to start. App ID: '%s'. Startup ID: '%s'.",
                              csm_app_peek_app_id (app),
                              csm_app_peek_startup_id (app));
@@ -519,7 +516,7 @@
 {
         gboolean start_next_phase = TRUE;
 
-        g_debug ("CsmManager: ending phase %s\n",
+        g_debug ("CsmManager: ending phase %s",
                  phase_num_to_name (manager->priv->phase));
 
         g_slist_free (manager->priv->pending_apps);
@@ -862,7 +859,7 @@
         data.manager = manager;
         data.flags = 0;
 
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         if (manager->priv->logout_mode == CSM_MANAGER_LOGOUT_MODE_FORCE) {
                 data.flags |= CSM_CLIENT_END_SESSION_FLAG_FORCEFUL;
@@ -1077,7 +1074,7 @@
         /* remove the dialog before we remove the inhibitors, else the dialog
          * will activate itself automatically when the last inhibitor will be
          * removed */
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         /* clear all JIT inhibitors */
         csm_store_foreach_remove (manager->priv->inhibitors,
@@ -1166,7 +1163,7 @@
 static void
 manager_switch_user (CsmManager *manager)
 {
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         /* We have to do this here and in request_switch_user() because this
          * function can be called at a later time, not just directly after
@@ -1237,7 +1234,7 @@
          * (if preferences dictate it) */
         manager_perhaps_lock (manager);
 
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         if (csm_system_can_hibernate (manager->priv->system)) {
                 csm_system_hibernate (manager->priv->system);
@@ -1251,7 +1248,7 @@
          * (if preferences dictate it) */
         manager_perhaps_lock (manager);
 
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         if (g_settings_get_boolean (manager->priv->settings, 
KEY_PREFER_HYBRID_SLEEP) &&
             csm_system_can_hybrid_sleep (manager->priv->system)) {
@@ -1294,30 +1291,14 @@
     if (action == CSM_LOGOUT_ACTION_UNDEFINED) {
         return;
     }
-
+    g_debug ("Sending inhibitor info to end-session dialog");
     manager->priv->dialog_action = action;
 
     GVariant *dialog_inhibit_info = build_inhibitor_list_for_dialog 
(manager->priv->inhibitors,
                                                                      
manager->priv->clients,
                                                                      action);
 
-    if (manager->priv->dialog_connection != NULL) {
-        GError *error = NULL;
-
-        if (!g_dbus_connection_emit_signal (manager->priv->dialog_connection,
-                                            NULL,
-                                            "/org/gnome/SessionManager",
-                                            
"org.cinnamon.SessionManager.DialogPrivate",
-                                            "InhibitorsChanged",
-                                            dialog_inhibit_info,
-                                            &error)) {
-            if (error) {
-                g_critical ("Could not send inhibit list to dialog: %s", 
error->message);
-                g_clear_error (&error);
-
-            }
-        }
-    }
+    csm_exported_dialog_emit_inhibitors_changed 
(manager->priv->dialog_skeleton, dialog_inhibit_info);
 }
 
 static void
@@ -1494,7 +1475,7 @@
 start_phase (CsmManager *manager)
 {
 
-        g_debug ("CsmManager: starting phase %s\n",
+        g_debug ("CsmManager: starting phase %s",
                  phase_num_to_name (manager->priv->phase));
 
         /* reset state */
@@ -2625,14 +2606,21 @@
                    &new_owner);
 
     if (strlen (new_owner) == 0 && strlen (old_owner) > 0) {
-                /* service removed */
-                remove_inhibitors_for_connection (manager, old_owner);
-                remove_clients_for_connection (manager, old_owner);
+        /* service removed */
+        remove_inhibitors_for_connection (manager, old_owner);
+        remove_clients_for_connection (manager, old_owner);
+
+        if (g_strcmp0 (name, "org.Cinnamon") == 0) {
+            g_debug ("org.Cinnamon has lost its owner (Cinnamon is not 
running)");
+        }
     } else if (strlen (old_owner) == 0 && strlen (new_owner) > 0) {
-            /* service added */
+        /* service added */
+        if (g_strcmp0 (name, "org.Cinnamon") == 0) {
+            g_debug ("org.Cinnamon has an owner (Cinnamon is running)");
+        }
 
-            /* use this if we support automatically registering
-             * well known bus names */
+        /* use this if we support automatically registering
+         * well known bus names */
     }
 
     g_free (name);
@@ -2659,42 +2647,44 @@
 static gboolean csm_manager_is_switch_user_inhibited (CsmManager *manager);
 static gboolean csm_manager_is_suspend_inhibited (CsmManager *manager);
 
-static void
-handle_dialog_method_call (GDBusConnection       *connection,
-                           const gchar           *sender,
-                           const gchar           *object_path,
-                           const gchar           *interface_name,
-                           const gchar           *method_name,
-                           GVariant              *parameters,
+static gboolean
+handle_dialog_method_call (CsmExportedDialog     *dialog_skeleton,
                            GDBusMethodInvocation *invocation,
                            gpointer               user_data)
 {
     CsmManager *manager = CSM_MANAGER (user_data);
+    const gchar *method_name = g_dbus_method_invocation_get_method_name 
(invocation);
 
-    g_debug("Dialog method received: %s\n", method_name);
+    g_debug("Dialog method received: %s", method_name);
 
     if (g_strcmp0 (method_name, "Suspend") == 0) {
         request_suspend (manager);
+        csm_exported_dialog_complete_suspend (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "Hibernate") == 0) {
         request_hibernate (manager);
+        csm_exported_dialog_complete_hibernate (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "Restart") == 0) {
         request_reboot (manager);
+        csm_exported_dialog_complete_restart (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "Shutdown") == 0) {
         request_shutdown (manager);
+        csm_exported_dialog_complete_shutdown (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "SwitchUser") == 0) {
         request_switch_user (manager);
+        csm_exported_dialog_complete_switch_user (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "Logout") == 0) {
         request_logout (manager, CSM_MANAGER_LOGOUT_MODE_NO_CONFIRMATION);
+        csm_exported_dialog_complete_logout (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "Cancel") == 0) {
@@ -2707,12 +2697,14 @@
             g_debug ("session-manager dialog was cancelled");
         }
 
-        terminate_dialog ();
+        close_end_session_dialog (manager);
+        csm_exported_dialog_complete_logout (dialog_skeleton, invocation);
     }
     else
     if (g_strcmp0 (method_name, "IgnoreInhibitors") == 0) {
-        terminate_dialog ();
+        close_end_session_dialog (manager);
         do_inhibit_dialog_action (manager);
+        csm_exported_dialog_complete_ignore_inhibitors (dialog_skeleton, 
invocation);
     }
     else
     if (g_strcmp0 (method_name, "GetCapabilities") == 0) {
@@ -2720,7 +2712,7 @@
         gboolean can_hybrid_sleep = g_settings_get_boolean 
(manager->priv->settings, KEY_PREFER_HYBRID_SLEEP) &&
                               csm_system_can_hybrid_sleep 
(manager->priv->system);
 
-        ret = g_variant_new ("((bbbbbbb))",
+        ret = g_variant_new ("(bbbbbbb)",
                              !(_switch_user_is_locked_down (manager) || 
csm_manager_is_switch_user_inhibited (manager)),
                              (!_log_out_is_locked_down (manager)) && 
csm_system_can_stop (manager->priv->system),
                              (!_log_out_is_locked_down (manager)) && 
csm_system_can_restart (manager->priv->system),
@@ -2729,94 +2721,17 @@
                              (!csm_manager_is_suspend_inhibited (manager)) && 
csm_system_can_hibernate (manager->priv->system),
                              (!csm_manager_is_logout_inhibited (manager)));
 
-        g_dbus_method_invocation_return_value (invocation, ret);
-        return;
+        csm_exported_dialog_complete_get_capabilities (dialog_skeleton, 
invocation, ret);
     }
     else {
-        g_warning ("Unknown method name %s\n", method_name);
+        g_warning ("Unknown method name %s", method_name);
         g_dbus_method_invocation_return_error (invocation,
                                                CSM_MANAGER_ERROR,
                                                
CSM_MANAGER_ERROR_INVALID_METHOD,
                                                "Unknown method name %s",
                                                method_name);
-        return;
     }
 
-    g_dbus_method_invocation_return_value (invocation, NULL);
-}
-
-static GDBusNodeInfo *introspection_data = NULL;
-
-/* Introspection data for the service we are exporting */
-static const gchar introspection_xml[] =
-  "<node>"
-  "  <interface name='org.cinnamon.SessionManager.DialogPrivate'>"
-  "    <method name='Suspend'/>"
-  "    <method name='Hibernate'/>"
-  "    <method name='Restart'/>"
-  "    <method name='Shutdown'/>"
-  "    <method name='SwitchUser'/>"
-  "    <method name='Logout'/>"
-  "    <method name='Cancel'/>"
-  "    <method name='IgnoreInhibitors'/>"
-  "    <method name='GetCapabilities'>"
-  "      <arg type='(bbbbbbb)' name='capabilities' direction='out'/>"
-  "    </method>"
-  "    <method name='GetInhibitorInfo'>"
-  "    </method>"
-  "    <signal name='InhibitorsChanged'>"
-  "      <arg type='a(ssss)' name='capabilities'/>"
-  "    </signal>"
-  "  </interface>"
-  "</node>";
-
-static const GDBusInterfaceVTable interface_vtable =
-{
-  handle_dialog_method_call,
-  NULL,
-  NULL,
-  { 0 }
-};
-
-static void
-on_dialog_connection_closed (GDBusConnection *connection,
-                             gboolean         vanished,
-                             GError          *error,
-                             gpointer         user_data)
-{
-    CsmManager *manager = CSM_MANAGER (user_data);
-    g_debug ("Dialog disconnected\n");
-
-    g_dbus_connection_unregister_object (connection, 
manager->priv->dialog_reg_id);
-    manager->priv->dialog_reg_id = 0;
-
-    g_clear_object (&manager->priv->dialog_connection);
-}
-
-static gboolean
-on_new_dialog_connection (GDBusServer *server,
-                          GDBusConnection *connection,
-                          gpointer user_data)
-{
-    CsmManager *manager = CSM_MANAGER (user_data);
-
-    if (manager->priv->dialog_reg_id > 0) {
-        g_message ("Already have a dialog connection, ignoring new one");
-        return FALSE;
-    }
-
-    g_debug ("Dialog connected.\n");
-
-    manager->priv->dialog_connection = g_object_ref (connection);
-    g_signal_connect (connection, "closed", G_CALLBACK 
(on_dialog_connection_closed), manager);
-    manager->priv->dialog_reg_id = g_dbus_connection_register_object 
(connection,
-                                                                      
"/org/gnome/SessionManager",
-                                                                      
introspection_data->interfaces[0],
-                                                                      
&interface_vtable,
-                                                                      manager, 
 /* user_data */
-                                                                      NULL,  
/* user_data_free_func */
-                                                                      NULL); 
/* GError** */
-
     return TRUE;
 }
 
@@ -2847,10 +2762,23 @@
     { "handle-request-reboot",                  csm_manager_request_reboot }
 };
 
+static SkeletonSignal dialog_skeleton_signals[] = {
+    // signal name                              callback
+    { "handle-suspend",                         handle_dialog_method_call },
+    { "handle-hibernate",                       handle_dialog_method_call },
+    { "handle-restart",                         handle_dialog_method_call },
+    { "handle-shutdown",                        handle_dialog_method_call },
+    { "handle-switch-user",                     handle_dialog_method_call },
+    { "handle-logout",                          handle_dialog_method_call },
+    { "handle-cancel",                          handle_dialog_method_call },
+    { "handle-ignore-inhibitors",               handle_dialog_method_call },
+    { "handle-get-capabilities",                handle_dialog_method_call },
+};
+
 static gboolean
 register_manager (CsmManager *manager)
 {
-        CsmExportedManager *skeleton;
+        GDBusInterfaceSkeleton *skeleton;
         GError *error = NULL;
         gint i;
 
@@ -2885,10 +2813,19 @@
                           G_CALLBACK (on_dbus_proxy_signal),
                           manager);
 
-        skeleton = csm_exported_manager_skeleton_new ();
-        manager->priv->skeleton = skeleton;
+        manager->priv->cinnamon_proxy = g_dbus_proxy_new_sync 
(manager->priv->connection,
+                                                               
G_DBUS_PROXY_FLAGS_NONE,
+                                                               NULL,
+                                                               "org.Cinnamon",
+                                                               "/org/Cinnamon",
+                                                               "org.Cinnamon",
+                                                               NULL,
+                                                               &error);
+
+        skeleton = G_DBUS_INTERFACE_SKELETON 
(csm_exported_manager_skeleton_new ());
+        manager->priv->skeleton = CSM_EXPORTED_MANAGER (skeleton);
 
-        g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (skeleton),
+        g_dbus_interface_skeleton_export (skeleton,
                                           manager->priv->connection,
                                           CSM_MANAGER_DBUS_PATH,
                                           &error);
@@ -2909,43 +2846,22 @@
                                   manager);
         }
 
-        // Set up private controller interface for dialog
-        gchar *guid = g_dbus_generate_guid ();
-        gchar *address;
-
-        // Detect guest sessions.
-        if (g_str_has_prefix (g_get_home_dir (), "/tmp")) {
-            address = g_strdup ("unix:tmpdir=/tmp");
-        }
-        else {
-            address = g_strdup_printf ("%s-%s", DBUS_ADDRESS, guid);
-        }
-
-        GDBusServer *server = g_dbus_server_new_sync (address,
-                                                      
G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER,
-                                                      guid,
-                                                      NULL, NULL, &error);
-        g_dbus_server_start (server);
-
-        // In normal sessions, this address will be the same as what we 
provided for g_dbus_server_new_sync.
-        // In guest sessions, an abstract address will be generated, so use 
what the server returns, not
-        // what we gave it as an address.
-        manager->priv->dialog_bus_address = g_strdup 
(g_dbus_server_get_client_address (server));
-        g_debug ("Dialog server address: %s", 
manager->priv->dialog_bus_address);
-
-        g_free (guid);
-        g_free (address);
-
-        if (server == NULL) {
-            g_critical ("Error creating private dialog server. Logout, 
shutdown, restart will "
-                        "need to be performed from a terminal: %s", 
error->message);
-            g_clear_error (&error);
-            return TRUE;
-        }
-
-        introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, 
NULL);
-        manager->priv->dialog_server = server;
-        g_signal_connect (server, "new-connection", G_CALLBACK 
(on_new_dialog_connection), manager);
+        skeleton = G_DBUS_INTERFACE_SKELETON (csm_exported_dialog_skeleton_new 
());
+        manager->priv->dialog_skeleton = CSM_EXPORTED_DIALOG (skeleton);
+
+        g_dbus_interface_skeleton_export (skeleton,
+                                          manager->priv->connection,
+                                          CSM_MANAGER_DBUS_PATH,
+                                          &error);
+
+        for (i = 0; i < G_N_ELEMENTS (dialog_skeleton_signals); i++) {
+                SkeletonSignal sig = dialog_skeleton_signals[i];
+
+                g_signal_connect (skeleton,
+                                  sig.signal_name,
+                                  G_CALLBACK (sig.callback),
+                                  manager);
+        }
 
         return TRUE;
 }
@@ -3537,22 +3453,12 @@
 
         g_debug ("CsmManager: disposing manager");
 
-        terminate_dialog ();
+        close_end_session_dialog (manager);
 
         g_clear_object (&manager->priv->xsmp_server);
 
         g_clear_object (&manager->priv->bus_proxy);
-
-        if (manager->priv->dialog_reg_id > 0) {
-                g_dbus_connection_unregister_object 
(manager->priv->dialog_connection,
-                                                     
manager->priv->dialog_reg_id);
-                manager->priv->dialog_reg_id = 0;
-                g_dbus_node_info_unref (introspection_data);
-                g_dbus_server_stop (manager->priv->dialog_server);
-                g_object_unref (manager->priv->dialog_server);
-                g_object_unref (manager->priv->dialog_connection);
-                g_free (manager->priv->dialog_bus_address);
-        }
+        g_clear_object (&manager->priv->cinnamon_proxy);
 
         if (manager->priv->clients != NULL) {
                 g_signal_handlers_disconnect_by_func (manager->priv->clients,
@@ -3970,22 +3876,42 @@
 }
 
 static void
-terminate_dialog (void)
+close_end_session_dialog (CsmManager *manager)
 {
-    if (dialog_process == NULL) {
+    g_debug ("Closing end session dialog");
+
+    if (dialog_process != NULL) {
+        g_subprocess_send_signal (dialog_process, SIGTERM);
         return;
     }
 
-    g_debug ("Terminating cinnamon-session-quit dialog");
+    GError *error = NULL;
+    GVariant *ret = NULL;
+
+    ret = g_dbus_proxy_call_sync (manager->priv->cinnamon_proxy,
+                                  "CloseEndSessionDialog",
+                                  NULL,
+                                  G_DBUS_CALL_FLAGS_NONE,
+                                  -1,
+                                  NULL,
+                                  &error);
+    g_debug ("ret is: %p", ret);
 
-    g_subprocess_send_signal(dialog_process, SIGTERM);
+    g_variant_unref (ret);
+
+    if (error != NULL) {
+        g_critical ("Unable to close Cinnamon's end session dialog: %s", 
error->message);
+        g_error_free (error);
+    }
 }
 
 static void
-launch_dialog (CsmManager *manager, const gchar *flag)
+launch_gtk_dialog (CsmManager *manager,
+               DialogMode  mode)
 {
     GError *error;
-    g_debug ("Trying to launch session-manager dialog - 'cinnamon-session-quit 
--sm-owned --sm-bus-id %s'", manager->priv->dialog_bus_address);
+    const gchar *flag;
+    g_debug ("Trying to launch fallback (Gtk) end-session dialog");
 
     if (dialog_process != NULL) {
         g_debug ("There's already a session-manager dialog");
@@ -4000,10 +3926,25 @@
         cancel_end_session (manager);
     }
 
+    switch (mode) {
+        case DIALOG_MODE_LOGOUT:
+            flag = "--logout";
+            break;
+        case DIALOG_MODE_REBOOT:
+            flag = "--reboot";
+            break;
+        case DIALOG_MODE_SHUTDOWN:
+            flag = "--power-off";
+            
+            break;
+        default:
+            g_warning ("Unknown dialog mode: %d", mode);
+            return;
+    }
+
     const gchar *argv[] = {
         "cinnamon-session-quit",
         "--sm-owned",
-        "--sm-bus-id", manager->priv->dialog_bus_address,
         flag,
         NULL
     };
@@ -4012,7 +3953,7 @@
     GSubprocessFlags flags = G_SUBPROCESS_FLAGS_NONE;
 
     if (debugging) {
-        flags = G_SUBPROCESS_FLAGS_STDERR_MERGE | 
G_SUBPROCESS_FLAGS_STDOUT_PIPE;
+        flags = G_SUBPROCESS_FLAGS_STDERR_PIPE;
     }
 
     error = NULL;
@@ -4027,7 +3968,7 @@
     }
 
     if (debugging) {
-        GInputStream *stdout = g_subprocess_get_stdout_pipe (dialog_process);
+        GInputStream *stdout = g_subprocess_get_stderr_pipe (dialog_process);
         guint8 *buffer = g_malloc (1024);
         g_input_stream_read_async (G_INPUT_STREAM (stdout),
                                    buffer,
@@ -4046,9 +3987,60 @@
                               manager);
 }
 
+static gboolean
+launch_cinnamon_dialog (CsmManager  *manager,
+                        DialogMode   mode,
+                        GError     **error)
+{
+    GVariant *ret = NULL;
+
+    g_debug ("Requesting Cinnamon display its end-session dialog");
+
+    ret = g_dbus_proxy_call_sync (manager->priv->cinnamon_proxy,
+                                  "ShowEndSessionDialog",
+                                  g_variant_new ("(i)", mode),
+                                  G_DBUS_CALL_FLAGS_NONE,
+                                  -1,
+                                  NULL,
+                                  error);
+
+    if (*error != NULL) {
+        return FALSE;
+    }
+    g_debug ("launch ret is: %p", ret);
+
+    g_variant_unref (ret);
+
+    return TRUE;
+}
+
+static void
+show_end_session_dialog (CsmManager *manager,
+                         DialogMode  mode)
+{
+    GError *error = NULL;
+    
+    if (g_settings_get_boolean (manager->priv->settings, 
KEY_FORCE_GTK_END_SESSION)) {
+        g_debug ("Using Gtk end-session dialog based on settings.");
+        launch_gtk_dialog (manager, mode);
+        return;
+    }
+
+    if (!launch_cinnamon_dialog (manager, mode, &error)) {
+        if (error->code == G_DBUS_ERROR_NAME_HAS_NO_OWNER) {
+            g_debug ("Cinnamon is not running, falling back to Gtk end-session 
dialog");
+        } else {
+            g_critical ("Failed to launch Cinnamon's end session dialog, 
falling back to Gtk end-session dialog: %s", error->message);
+        }
+
+        g_error_free (error);
+        launch_gtk_dialog (manager, mode);
+    }
+}
+
 static void
 show_shutdown_dialog (CsmManager *manager,
-                               gboolean    is_reboot)
+                      gboolean    is_reboot)
 {
         if (manager->priv->phase > CSM_MANAGER_PHASE_QUERY_END_SESSION) {
                 /* Already shutting down, nothing more to do */
@@ -4057,7 +4049,7 @@
 
         manager->priv->logout_mode = CSM_MANAGER_LOGOUT_MODE_NORMAL;
 
-        launch_dialog (manager, is_reboot ? "--reboot" : "--power-off");
+        show_end_session_dialog (manager, is_reboot ? DIALOG_MODE_REBOOT : 
DIALOG_MODE_SHUTDOWN);
 }
 
 static void
@@ -4070,7 +4062,7 @@
 
         manager->priv->logout_mode = CSM_MANAGER_LOGOUT_MODE_NORMAL;
 
-        launch_dialog (manager, "--logout");
+        show_end_session_dialog (manager, DIALOG_MODE_LOGOUT);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session/inhibit-dialog-info.c 
new/cinnamon-session-6.4.0/cinnamon-session/inhibit-dialog-info.c
--- old/cinnamon-session-6.2.1/cinnamon-session/inhibit-dialog-info.c   
2024-07-19 15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session/inhibit-dialog-info.c   
2024-11-27 10:23:46.000000000 +0100
@@ -138,16 +138,13 @@
             gicon_string = g_icon_to_string (gicon);
         }
         
-        // g_variant_builder_open (info->builder, G_VARIANT_TYPE_ARRAY);
+        g_debug ("Adding %s to dialog inhibitor list", name);
+        g_variant_builder_add (info->builder, "(ssss)",
+                               name ? name : "none",
+                               gicon_string ? gicon_string : "none",
+                               csm_inhibitor_peek_reason (inhibitor) ? 
csm_inhibitor_peek_reason (inhibitor) : "none",
+                               csm_inhibitor_peek_id (inhibitor) ? 
csm_inhibitor_peek_id (inhibitor) : "none");
 
-        GVariant *item = g_variant_new ("(ssss)",
-                                        name ? name : "none",
-                                        gicon_string ? gicon_string : "none",
-                                        csm_inhibitor_peek_reason (inhibitor) 
? csm_inhibitor_peek_reason (inhibitor) : "none",
-                                        csm_inhibitor_peek_id (inhibitor) ? 
csm_inhibitor_peek_id (inhibitor) : "none");
-
-        g_variant_builder_add_value (info->builder, item);
-        // g_variant_builder_close (info->builder);
         info->count++;
 
         g_free (gicon_string);
@@ -161,7 +158,31 @@
                 CsmInhibitor      *inhibitor,
                 InhibitDialogInfo *info)
 {
-        add_inhibitor (info, inhibitor);
+        CsmInhibitorFlag flags = csm_inhibitor_peek_flags (inhibitor);
+
+        switch (info->action) {
+            case CSM_LOGOUT_ACTION_LOGOUT:
+            case CSM_LOGOUT_ACTION_SHUTDOWN:
+            case CSM_LOGOUT_ACTION_REBOOT:
+                    if (flags & CSM_INHIBITOR_FLAG_LOGOUT) {
+                            add_inhibitor (info, inhibitor);
+                    }
+                    break;
+            case CSM_LOGOUT_ACTION_SWITCH_USER:
+                    if (flags & CSM_INHIBITOR_FLAG_SWITCH_USER) {
+                            add_inhibitor (info, inhibitor);
+                    }
+                    break;
+            case CSM_LOGOUT_ACTION_HIBERNATE:
+            case CSM_LOGOUT_ACTION_SLEEP:
+                    if (flags & CSM_INHIBITOR_FLAG_SUSPEND) {
+                            add_inhibitor (info, inhibitor);
+                    }
+                    break;
+            default:
+                    break;
+        }
+
         return FALSE;
 }
 
@@ -178,30 +199,24 @@
                                  CsmStore *clients,
                                  int       action)
 {
-    GVariantBuilder builder;
-
-    g_variant_builder_init (&builder, G_VARIANT_TYPE_TUPLE);
-    g_variant_builder_open (&builder, G_VARIANT_TYPE ("a(ssss)"));
+    g_autoptr(GVariantBuilder) builder = g_variant_builder_new (G_VARIANT_TYPE 
("a(ssss)"));
 
-    InhibitDialogInfo *info = g_new0 (InhibitDialogInfo, 1);
-    info->action = action;
-    info->builder = &builder;
+    InhibitDialogInfo info;
+    info.action = action;
+    info.builder = builder;
 
     if (clients != NULL) {
-        info->clients = g_object_ref (clients);
+        info.clients = g_object_ref (clients);
     }
 
     if (inhibitors != NULL) {
-        info->inhibitors = g_object_ref (inhibitors);
+        info.inhibitors = g_object_ref (inhibitors);
     }
 
-    populate_builder (info);
-
-    g_variant_builder_close (&builder);
+    populate_builder (&info);
 
-    g_object_unref (info->clients);
-    g_object_unref (info->inhibitors);
+    g_object_unref (info.clients);
+    g_object_unref (info.inhibitors);
 
-    g_free (info);
-    return g_variant_builder_end (&builder);
+    return g_variant_builder_end (builder);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-session-6.2.1/cinnamon-session/meson.build 
new/cinnamon-session-6.4.0/cinnamon-session/meson.build
--- old/cinnamon-session-6.2.1/cinnamon-session/meson.build     2024-07-19 
15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session/meson.build     2024-11-27 
10:23:46.000000000 +0100
@@ -11,7 +11,8 @@
   ['exported-client-private', 'org.gnome.SessionManager.ClientPrivate', 
'ExportedClientPrivate'],
   ['exported-app', 'org.gnome.SessionManager.App', 'ExportedApp'],
   ['exported-inhibitor', 'org.gnome.SessionManager.Inhibitor', 
'ExportedInhibitor'],
-  ['exported-presence', 'org.gnome.SessionManager.Presence', 
'ExportedPresence']
+  ['exported-presence', 'org.gnome.SessionManager.Presence', 
'ExportedPresence'],
+  ['exported-dialog', 'org.cinnamon.SessionManager.EndSessionDialog', 
'ExportedDialog']
 ]
 
 gdbus_sources = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session/org.cinnamon.SessionManager.EndSessionDialog.xml
 
new/cinnamon-session-6.4.0/cinnamon-session/org.cinnamon.SessionManager.EndSessionDialog.xml
--- 
old/cinnamon-session-6.2.1/cinnamon-session/org.cinnamon.SessionManager.EndSessionDialog.xml
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/cinnamon-session-6.4.0/cinnamon-session/org.cinnamon.SessionManager.EndSessionDialog.xml
        2024-11-27 10:23:46.000000000 +0100
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" 
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd";>
+  <interface name='org.cinnamon.SessionManager.EndSessionDialog'>
+    <method name='Suspend'/>
+    <method name='Hibernate'/>
+    <method name='Restart'/>
+    <method name='Shutdown'/>
+    <method name='SwitchUser'/>
+    <method name='Logout'/>
+    <method name='Cancel'/>
+    <method name='IgnoreInhibitors'/>
+    <method name='GetCapabilities'>
+      <arg type='(bbbbbbb)' name='capabilities' direction='out'/>
+    </method>
+    <signal name='InhibitorsChanged'>
+      <arg type='a(ssss)' name='capabilities'/>
+    </signal>
+  </interface>
+</node>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session-quit/cinnamon-session-quit.py 
new/cinnamon-session-6.4.0/cinnamon-session-quit/cinnamon-session-quit.py
--- old/cinnamon-session-6.2.1/cinnamon-session-quit/cinnamon-session-quit.py   
2024-07-19 15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session-quit/cinnamon-session-quit.py   
2024-11-27 10:23:46.000000000 +0100
@@ -64,7 +64,10 @@
         parser.add_argument("--no-prompt", dest="no_prompt", 
action='store_true',
                             help=_("Don't prompt for user confirmation"))
         parser.add_argument("--sm-owned", action="store_true", 
help=argparse.SUPPRESS)
-        parser.add_argument("--sm-bus-id", dest="bus_id", action="store", 
help=argparse.SUPPRESS, default=config.DBUS_ADDRESS)
+
+        # unused in 6.4+, kept only for upgrade session (running c-s process 
is previous version, dialog is new)
+        parser.add_argument("--sm-bus-id", dest="bus_id", action="store", 
help=argparse.SUPPRESS, default=None)
+
         args = parser.parse_args()
 
         self.dialog_response = ResponseCode.NONE
@@ -76,11 +79,7 @@
         self.force = args.force
         self.no_prompt = args.no_prompt
         self.sm_owned = args.sm_owned
-
-        if self.sm_owned:
-            self.bus_id = args.bus_id
-        else:
-            self.bus_id = None
+        self.bus_id = args.bus_id
 
         self.proxy = None
         self.signal_handler_id = 0
@@ -118,7 +117,7 @@
                     proxy.call_finish(res)
                     # self.quit()
                 except GLib.Error as e:
-                    print("An error occurred forwarding to the session 
manager: %s" % e.message)
+                    print("An error occurred forwarding to the session 
manager: %s" % e.message, file=sys.stderr, end=None)
 
             if self.mode == Action.LOGOUT:
                 arg = LogoutParams.NORMAL
@@ -156,7 +155,7 @@
                 )
         except GLib.Error as e:
             if sm_proxy is None:
-                print("Could not forward to 
org.cinnamon.SessionManager.Manager: %s" % e.message)
+                print("Could not forward to 
org.cinnamon.SessionManager.Manager: %s" % e.message, file=sys.stderr, end=None)
                 sys.exit(1)
 
         sys.exit(0)
@@ -169,40 +168,52 @@
         connection = None
 
         try:
-            connection = Gio.DBusConnection.new_for_address_sync(
-                self.bus_id,
-                Gio.DBusConnectionFlags.AUTHENTICATION_CLIENT,
-                None, None
-            )
+            # 6.4 and later this will always be None, obsolete connection
+            if self.bus_id is not None:
+                connection = Gio.DBusConnection.new_for_address_sync(
+                    self.bus_id,
+                    Gio.DBusConnectionFlags.AUTHENTICATION_CLIENT,
+                    None, None
+                )
 
-            self.proxy = Gio.DBusProxy.new_sync(
-                connection,
-                Gio.DBusProxyFlags.DO_NOT_AUTO_START,
-                None,
-                None,
-                "/org/gnome/SessionManager",
-                "org.cinnamon.SessionManager.DialogPrivate",
-                None
-            )
+                self.proxy = Gio.DBusProxy.new_sync(
+                    connection,
+                    Gio.DBusProxyFlags.DO_NOT_AUTO_START,
+                    None,
+                    None,
+                    "/org/gnome/SessionManager",
+                    "org.cinnamon.SessionManager.DialogPrivate",
+                    None
+                )
+            else:
+                self.proxy = Gio.DBusProxy.new_for_bus_sync(
+                    Gio.BusType.SESSION,
+                    Gio.DBusProxyFlags.DO_NOT_AUTO_START,
+                    None,
+                    "org.gnome.SessionManager",
+                    "/org/gnome/SessionManager",
+                    "org.cinnamon.SessionManager.EndSessionDialog",
+                    None
+                )
 
             self.proxy.connect("g-signal", self.inhibitor_info_received)
 
         except GLib.Error as e:
             if connection is None:
-                print("Could not connect to session dialog server: %s" % 
e.message)
+                print("Could not connect to session dialog server: %s" % 
e.message, file=sys.stderr, end=None)
                 sys.exit(1)
             if self.proxy is None:
-                print("Could not create proxy to session dialog interface: %s" 
% e.message)
+                print("Could not create proxy to session dialog interface: %s" 
% e.message, file=sys.stderr, end=None)
                 sys.exit(1)
 
     def inhibitor_info_received(self, proxy, sender, signal, params):
         inhibitors = params[0]
 
         if self.dialog_response == ResponseCode.NONE:
-            print("Ignoring inhibitor info, still waiting on initial response 
from user")
+            print("Ignoring inhibitor info, still waiting on initial response 
from user", file=sys.stderr, end=None)
             return
 
-        print("Inhibitor info received (%d inhibitors)" % len(inhibitors))
+        print("Inhibitor info received (%d inhibitors): %s" % 
(len(inhibitors), params), file=sys.stderr, end=None)
 
         if inhibitors:
             self.inhibited = True
@@ -243,8 +254,10 @@
         self.view_stack = self.builder.get_object("view_stack")
         self.inhibitor_treeview = self.builder.get_object("inhibitor_treeview")
 
-        can_switch_user, can_stop, can_restart, can_hybrid_sleep, can_suspend, 
can_hibernate, can_logout = self.get_session_capabilities()
-
+        try:
+            can_switch_user, can_stop, can_restart, can_hybrid_sleep, 
can_suspend, can_hibernate, can_logout = self.get_session_capabilities()
+        except Exception as e:
+            print(e, file=sys.stderr, end=None)
         default_button = None
 
         if self.mode == Action.LOGOUT:
@@ -265,7 +278,7 @@
             self.window.set_icon_name("system-shutdown")
         elif self.mode == Action.RESTART:
             if not can_restart:
-                print("Restart not available")
+                print("Restart not available", file=sys.stderr, end=None)
                 Gtk.main_quit()
                 return
             self.dialog_label.set_text(_("Restart this system now?"))
@@ -304,7 +317,7 @@
             )
             return caps[0]
         except GLib.Error as e:
-            print("Could not retrieve session capabilities: %s" % e.message)
+            print("Could not retrieve session capabilities: %s" % e.message, 
file=sys.stderr, end=None)
 
     def start_timer(self):
         if self.timer_id > 0:
@@ -315,6 +328,11 @@
         self.update_timer()
         GLib.timeout_add(1000, self.update_timer)
 
+    def stop_timer(self):
+        if self.timer_id > 0:
+            GLib.source_remove(self.timer_id)
+            self.timer_id = 0
+
     def update_timer(self):
         if self.current_time == 0:
             self.handle_response(self.window, self.default_response)
@@ -347,15 +365,17 @@
         return GLib.SOURCE_CONTINUE
 
     def handle_response(self, dialog, code):
+        self.stop_timer()
+
         self.view_stack.set_visible_child_name("busy")
 
         if self.inhibited:
             if code == ResponseCode.CONTINUE:
-                print("Sending ignore inhibitors")
+                print("Sending ignore inhibitors", file=sys.stderr, end=None)
                 self.send_command("IgnoreInhibitors")
                 self.finish_up()
             elif code in (ResponseCode.CANCEL, Gtk.ResponseType.NONE, 
Gtk.ResponseType.DELETE_EVENT):
-                print("Canceling action during inhibit phase")
+                print("Canceling action during inhibit phase", 
file=sys.stderr, end=None)
                 self.send_command("Cancel")
                 self.quit()
             return
@@ -378,7 +398,7 @@
             self.send_command("Cancel")
             self.quit(0)
         else:
-            print("Invalid response code: %d" % code)
+            print("Invalid response code: %d" % code, file=sys.stderr, 
end=None)
 
     def send_command(self, command):
         try:
@@ -391,7 +411,7 @@
                 None
             )
         except GLib.Error as e:
-            print("Could not send command '%s' to session manager: %s" % 
(str(command), e.message))
+            print("Could not send command '%s' to session manager: %s" % 
(str(command), e.message), file=sys.stderr, end=None)
 
         self.command_sent = True
         # wait for inhibit info
@@ -409,7 +429,7 @@
         self.view_stack.set_visible_child_name("inhibit")
 
     def on_terminate(self, data=None):
-        print("Received SIGTERM from cinnamon-session, exiting")
+        print("Received SIGTERM from cinnamon-session, exiting", 
file=sys.stderr, end=None)
         self.quit(0)
 
     def finish_up(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session-quit/config.py.in 
new/cinnamon-session-6.4.0/cinnamon-session-quit/config.py.in
--- old/cinnamon-session-6.2.1/cinnamon-session-quit/config.py.in       
2024-07-19 15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session-quit/config.py.in       
2024-11-27 10:23:46.000000000 +0100
@@ -3,5 +3,4 @@
 LOCALE_DIR=@LOCALE_DIR@
 PACKAGE=@PACKAGE@
 VERSION=@VERSION@
-DBUS_ADDRESS=@DBUS_ADDRESS@
 PKG_DATADIR=@PKG_DATADIR@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/cinnamon-session-quit/meson.build 
new/cinnamon-session-6.4.0/cinnamon-session-quit/meson.build
--- old/cinnamon-session-6.2.1/cinnamon-session-quit/meson.build        
2024-07-19 15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/cinnamon-session-quit/meson.build        
2024-11-27 10:23:46.000000000 +0100
@@ -4,7 +4,6 @@
 csq_conf.set_quoted('PACKAGE', meson.project_name())
 csq_conf.set_quoted('VERSION', meson.project_version())
 csq_conf.set_quoted('PKG_DATADIR', pkg_datadir)
-csq_conf.set_quoted('DBUS_ADDRESS', dialog_dbus_address)
 
 config_py = configure_file(
   output: 'config.py',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-session-6.2.1/data/org.cinnamon.SessionManager.gschema.xml 
new/cinnamon-session-6.4.0/data/org.cinnamon.SessionManager.gschema.xml
--- old/cinnamon-session-6.2.1/data/org.cinnamon.SessionManager.gschema.xml     
2024-07-19 15:51:40.000000000 +0200
+++ new/cinnamon-session-6.4.0/data/org.cinnamon.SessionManager.gschema.xml     
2024-11-27 10:23:46.000000000 +0100
@@ -20,13 +20,13 @@
       <summary>Logout prompt</summary>
       <description>If enabled, cinnamon-session will prompt the user before 
ending a session.</description>
     </key>
-    <key name="show-fallback-warning" type="b">
-      <default>true</default>
-      <summary>Show the fallback warning</summary>
-      <description>If enabled, cinnamon-session will display a warning dialog 
after login if the session was automatically fallen back.</description>
+    <key name="force-gtk-end-session-dialog" type="b">
+      <default>false</default>
+      <summary>Always use the session manager's end-session-dialog</summary>
+      <description>If enabled, cinnamon-session will not try to use Cinnamon's 
end-session dialog, instead preferring Gtk fallback.</description>
     </key>
     <key name="autostart-blacklist" type="as">
-      <default>['gnome-settings-daemon', 'org.gnome.SettingsDaemon', 
'gnome-fallback-mount-helper', 'gnome-screensaver', 'mate-screensaver', 
'mate-keyring-daemon', 'indicator-session', 'gnome-initial-setup-copy-worker', 
'gnome-initial-setup-first-login', 'gnome-welcome-tour', 
'xscreensaver-autostart', 'nautilus-autostart', 'caja', 'xfce4-power-manager', 
'touchegg']</default>
+      <default>['gnome-settings-daemon', 'org.gnome.SettingsDaemon', 
'gnome-fallback-mount-helper', 'gnome-screensaver', 'mate-screensaver', 
'mate-keyring-daemon', 'indicator-session', 'gnome-initial-setup-copy-worker', 
'gnome-initial-setup-first-login', 'gnome-welcome-tour', 
'xscreensaver-autostart', 'nautilus-autostart', 'nm-applet', 'caja', 
'xfce4-power-manager', 'touchegg']</default>
       <summary>Applications to block from autostarting or appearing in the app 
system</summary>
       <description>
         A list of applications or desktop names (without the .desktop 
extension) to prevent from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-session-6.2.1/debian/changelog 
new/cinnamon-session-6.4.0/debian/changelog
--- old/cinnamon-session-6.2.1/debian/changelog 2024-07-19 15:51:40.000000000 
+0200
+++ new/cinnamon-session-6.4.0/debian/changelog 2024-11-27 10:23:46.000000000 
+0100
@@ -1,3 +1,13 @@
+cinnamon-session (6.4.0) xia; urgency=medium
+
+  [ Clement Lefebvre ]
+  * autostart: Blacklist nm-applet
+
+  [ Michael Webster ]
+  * Refactor/simplify end-session dialog handling to use a native- (#177)
+
+ -- Clement Lefebvre <r...@linuxmint.com>  Wed, 27 Nov 2024 09:23:18 +0000
+
 cinnamon-session (6.2.1) wilma; urgency=medium
 
   [ Leigh Scott ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-session-6.2.1/meson.build 
new/cinnamon-session-6.4.0/meson.build
--- old/cinnamon-session-6.2.1/meson.build      2024-07-19 15:51:40.000000000 
+0200
+++ new/cinnamon-session-6.4.0/meson.build      2024-11-27 10:23:46.000000000 
+0100
@@ -2,7 +2,7 @@
 project(
   'cinnamon-session',
   ['c'],
-version : '6.2.1',
+version : '6.4.0',
 meson_version : '>=0.56.0'
 )
 
@@ -123,7 +123,6 @@
 
 rootInclude = include_directories('.')
 
-dialog_dbus_address = 'unix:abstract=cinnamon-session-quit-dialog'
 pkg_datadir = join_paths(get_option('prefix'), get_option('datadir'), 
meson.project_name())
 
 conf.set_quoted('PKGDATADIR',         pkg_datadir)
@@ -133,7 +132,6 @@
 conf.set_quoted('PACKAGE', meson.project_name())
 conf.set_quoted('VERSION', meson.project_version())
 conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
-conf.set_quoted('DBUS_ADDRESS', dialog_dbus_address)
 
 
 configure_file(

Reply via email to