[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1113902: trixie-pu: package xssproxy/1.0.0-1+deb13u1



Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: xssproxy@packages.debian.org, team+salvage@tracker.debian.org
Control: affects -1 + src:xssproxy
User: release.debian.org@packages.debian.org
Usertags: pu

Dear release team,

please approve the upload of xssproxy 1.0.0-1+deb13u1 to Debian trixie
in order to fix this bug: https://bugs.debian.org/1092965

[ Reason ]
xssproxy implements the org.freedesktop.ScreenSaver D-Bus interface so
that screen saver can be inhibited when, for example, playing a video
in a browser. The version in stable binds to /ScreenSaver while
Firefox and chrome (or xdg-desktop-portal?) send the request to
/org/freedesktop/ScreenSaver. Without the fix, the request to inhibit
screen saving is ignored.

xssproxy package has been salvaged, but too late to make it into trixie
without disturbing the release process.

[ Impact ]
Users of full featured desktops (GNOME/KDE/…) do not need this package
as the desktop system implements the interface. This is only used for
lightweight environments.

Since some time around January, screen saver inhibition mechanism
changed in Firefox (or xdg-desktop-portal?), making it depend on the
interface implemented in xssproxy. This is correlated with the xssproxy
significant popularity increase, from less than 100 to 1200 reported
installations:
https://qa.debian.org/popcon.php?package=xssproxy

Without the fix, the package does not work as intended.

[ Tests ]
Without the fix, when playing a video in Firefox, this can be seen in
journal, with xssproxy running:

	xdg-desktop-por[1787]: Backend call failed:
	GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method
	"Inhibit" with signature "ss" on interface
	"org.freedesktop.ScreenSaver" doesn't exist

After some time without user input, screen saver triggers and interrupts
the video playback.

With the fix, when playing a video, no error is reported and screen
saver does not interrupt the video playback.

[ Risks ]
Should be low because:

- This is a direct import of upstream change.
- Change is present upstream since Nov 2023.
- The fix binds to /org/freedesktop/ScreenSaver in addition to
  /ScreenSaver, so a program using the old name would still work.
- The new path is the conventional path documented in D-Bus
  specification[1].

[1]: https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
Previous code binds to /ScreenSaver, new code binds to both /ScreenSaver
and the right /org/freedesktop/ScreenSaver path.

[ Other info ]
The xssproxy has been salvaged and is now maintained by the Debian
Salvaging Team. I am a DM, the upload will need to be done by a member
of the team.

Kind regards,

Nicolas.


*** xssproxy_1.0.0-1+deb13u1.diff
diff -Nru xssproxy-1.0.0/debian/changelog xssproxy-1.0.0/debian/changelog
--- xssproxy-1.0.0/debian/changelog	2017-08-22 16:57:23.000000000 +0200
+++ xssproxy-1.0.0/debian/changelog	2025-09-03 14:44:22.000000000 +0200
@@ -1,3 +1,9 @@
+xssproxy (1.0.0-1+deb13u1) trixie; urgency=medium
+
+  * Listen on object path /org/freedesktop/ScreenSaver too (Closes: 1092965)
+
+ -- Nicolas Schodet <nico@ni.fr.eu.org>  Wed, 03 Sep 2025 14:44:22 +0200
+
 xssproxy (1.0.0-1) unstable; urgency=medium
 
   * Initial release (Closes: #872805)
diff -Nru xssproxy-1.0.0/debian/patches/listen-path.patch xssproxy-1.0.0/debian/patches/listen-path.patch
--- xssproxy-1.0.0/debian/patches/listen-path.patch	1970-01-01 01:00:00.000000000 +0100
+++ xssproxy-1.0.0/debian/patches/listen-path.patch	2025-09-03 14:44:14.000000000 +0200
@@ -0,0 +1,38 @@
+Description: Listen on object path `/org/freedesktop/ScreenSaver` too
+Origin: upstream, https://github.com/vincentbernat/xssproxy/commit/8990c56b706f0faf1ec8ca974a8ba64f37c2b1b3
+Bug: https://github.com/vincentbernat/xssproxy/issues/9
+Bug-Debian: https://bugs.debian.org/1092965
+Last-Update: 2023-11-11
+Applied-Upstream: 1.1.1
+
+The freedesktop.org spec doesn't mention which object path the methods
+are supposed to be called on. xssproxy currently listens on
+`/ScreenSaver`, but Chromium wants the ["conventional"][1]
+`/org/freedesktop/ScreenSaver` path instead.
+
+There's no reason we can't listen on both, so let's do that.
+
+[1]: https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus
+---
+ xssproxy.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/xssproxy.c b/xssproxy.c
+index 8bef8d0..2541c5d 100644
+--- a/xssproxy.c
++++ b/xssproxy.c
+@@ -280,6 +280,11 @@ DBusConnection *dbus_conn_init()
+         &vtable, NULL, &err);
+     check_and_exit(&err);
+ 
++    dbus_connection_try_register_object_path(conn,
++        "/org/freedesktop/ScreenSaver",
++        &vtable, NULL, &err);
++    check_and_exit(&err);
++
+     return conn;
+ }
+ 
+-- 
+2.47.2
+
diff -Nru xssproxy-1.0.0/debian/patches/series xssproxy-1.0.0/debian/patches/series
--- xssproxy-1.0.0/debian/patches/series	2017-08-22 16:57:23.000000000 +0200
+++ xssproxy-1.0.0/debian/patches/series	2025-09-03 14:44:14.000000000 +0200
@@ -1 +1,2 @@
 install.patch
+listen-path.patch

Reply to: