Debian Patches
Status for cinnamon-session/6.6.4-2
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| csm-app.c-Fix-cinnamon-restart-limit-avoidance.patch | csm-app.c: Fix cinnamon restart limit avoidance. app->priv->app_id is NULL for cinnamon. |
Michael Webster <miketwebster@gmail.com> | no | upstream, https://github.com/linuxmint/cinnamon-session/commit/e8238bfa2f7ffd44dc77618d7eaa671e855d1e9c | 2026-02-27 | |
| main.c-Use-the-existing-user-D-Bus-session-bus-instead-of.patch | main.c: Use the existing user D-Bus session bus instead of spawning dbus-launch. require_dbus_session() only looked at DBUS_SESSION_BUS_ADDRESS, so with the variable unset it re-exec'd the session under `dbus-launch --exit-with-session` even when the user already had a session bus running on the well-known socket at $XDG_RUNTIME_DIR/bus (the default on systemd, and on elogind setups with dbus configured for the user bus). That starts a second bus, splitting activatable services and portals across the two, and on systems that ship no dbus-launch binary (Debian with only dbus-user-session installed) the session does not start at all. X11 logins usually escape this because the display manager wraps the session in a script that exports DBUS_SESSION_BUS_ADDRESS, but the Wayland session does not go through those wrappers, so it depends on the display manager. Ask GDBus for the session bus address first: it looks for the socket at $XDG_RUNTIME_DIR/bus, and we export the address so every child of the session ends up on the same bus. The dbus-launch fallback stays for setups without a user bus, so nothing changes there. This is what gnome-session does in leader-main.c. |
Fabio Fantoni <fantonifabio@tiscali.it> | yes | debian upstream | 2026-08-07 | |
| main.c-Report-the-failure-when-dbus-launch-cannot-be-exec.patch | main.c: Report the failure when dbus-launch cannot be executed. execvp() returns only when it failed, and then it always returns -1, so `if (!execvp (...))` was never true: the g_set_error() branch was dead code. Instead of failing with "No session bus and could not exec dbus-launch", require_dbus_session() fell through to the `return TRUE` marked "Should not be reached" and the session kept going with no session bus at all, silently, until something else broke further down. Call execvp() and treat its return as the failure it is. This is easier to hit than it looks on systems that ship no dbus-launch binary, and the previous patch does not change that: it only makes the fallback rarer, not the failure mode better. |
Fabio Fantoni <fantonifabio@tiscali.it> | yes | 2026-08-07 | ||
| csm-systemd.c-Take-the-session-s-logind-inhibitor-in-bloc.patch | csm-systemd.c: Take the session's logind inhibitor in block-weak mode when available. (#219) Since systemd 257, logind always obeys "block" inhibitors, including the ones held by the user who requests the operation (before, those were ignored for the same user and for root). The "sleep:shutdown" inhibitor that cinnamon-session takes on behalf of applications inhibiting suspend (Rhythmbox while playing, browsers playing media, ...) now blocks the session itself: - closing the lid: csd-power locks the screen and calls Suspend(), which is refused, so the laptop stays on; - end-session dialog: logind answers "inhibited" to CanSuspend/CanPowerOff/CanReboot, so suspend, restart and shut down are not offered, and "Ignore and continue" for suspend does nothing. The "block-weak" mode, added in systemd 257, keeps the previous semantics. Suspend on idle still honours the inhibitors, since csd-power checks the session inhibitors itself before arming the sleep timeout. gnome-session did the same (39d51c9e6, "systemd: Downgrade suspend inhibitor to block-weak"). systemd-logind and elogind older than 257 don't know "block-weak": there the inhibitor is still taken in "block" mode, which on those versions is ignored for the same user anyway. The BlockWeakInhibited property, added together with the new mode, tells the two apart. |
Fabio Fantoni <fantonifabio@tiscali.it> | no | debian | upstream, https://github.com/linuxmint/cinnamon-session/commit/2f256e0acf0130e16b156cd3e8f53dd576b2e31a | 2026-10-15 |
