New tests: GTK3 platform accessibility
Michael Weghorn
m.weghorn at posteo.de
Wed Sep 13 20:56:58 UTC 2023
On 2023-09-12 10:49, Colomban Wendling wrote:
> All that is a bit confusing to me, but let me try ton understand:
> - On a system using dbus-broker, when logged in under GNOME, test fails?
> - On *the same system*, but logging-in through SSH works!??
Yes, that's what I've observed in a Fedora 38 VM.
> That's worrying, as it suggests the running environment has too much
> influence on the test run, which is not good.
>
> However, IIUC you suggest it might be a dbus/dbus-borken conflict
> somehow?
That's what it looked like to me during first analysis.
What might be happening is that at-spi-bus-launcher detects a systemd
environment that makes it think running dbus-broker should work, but
something about the systemd/D-Bus environment in the virtual X session
provided by xfvb-run and dbus-launch doesn't match what's expected/required.
See also this comment in the at-spi-bus-launcher source code [1]:
/* This detects whether we are running under systemd. We only try to
* use dbus-broker if we are running under systemd because D-Bus
* service activation won't work otherwise.
*/
The following sample program, based on the at-spi-bus-launcher-code,
could explain why the SSH case works: The "systemd, use dbus-broker"
case is triggered for me on Debian testing in a KDE Plasma X11 session
(and probably the same way for a Fedora 38 GNOME session), but not in an
SSH session ("no systemd, don't use dbus-broker").
---------------------------------------------------
// build: g++ -o test test.cxx -lsystemd
#include <iostream>
#include <unistd.h>
#include <systemd/sd-login.h>
int main()
{
// s.
https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/e7310f8a57cf9d9744f68059fad451cb3acd116a/bus/at-spi-bus-launcher.c#L453-460
char* unit;
if (sd_pid_get_user_unit (getpid (), &unit) >= 0)
std::cout << "systemd, use dbus-broker" << std::endl;
else
std::cout << "no systemd, don't use dbus-broker" << std::endl;
}
---------------------------------------------------
> What if we try `dbus-broker-launch` (assuming it's compatible)
> instead of `dbus-launch` if the former is available?
> Would that help?
As Stephan mentioned already, it's not compatible as a drop-in-replacement.
Maybe this more complicated way mentioned in the Github discussion I
mentioned earlier could work:
Question [2]:
"What is the recommended way to run a nested dbus session, if not by
using dbus-run-session? I mostly use it to run debug instances of GNOME
Shell, as well as the for the CI pipeline when running inside Docker."
Answer (next comment):
"We don't have a recommended way to do that. If that functionality is
needed, it should be straightforward to achieve by just invoking your
private instance of `dbus-broker-launch`. Socket-activation for the
listener-socket is mandatory, though. So I would imagine creating
`dbus-broker at .socket` and `dbus-broker at .service` as systemd template
units, which take a path as template-argument where to place the socket.
It should then be as simple as `systemctl start
dbus-broker at foobar.service` to get it up and running.
If, however, you intend to integrate it into a test-suite, I would
rather expect the test-suite to create the listener manually and pass it
through `execve(2)` to `dbus-broker-launch`."
> I don't have any system to test this with yet, and it might take some
> time before I can have a F38 VM up and running with a LO build setup,
> but I'll try and see to this soon if it's a concern.
I'm on vacation this week, but could give this another try in my Fedora
VM sometime afterwards. Or, if you're also attending LibreOffice
conference next week in person, we could also take a look at it together
then for example.
[1]
https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/e7310f8a57cf9d9744f68059fad451cb3acd116a/bus/at-spi-bus-launcher.c#L453-460
[2] https://github.com/bus1/dbus-broker/issues/145#issuecomment-437874214
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20230913/fe1cd40d/attachment.sig>
More information about the LibreOffice
mailing list