Compare commits

..

No commits in common. "4119b9c75523030deb29cb89ef42d8d5297b31e5" and "55ce3faebeb6d9e329cfdd993a36ad63a0319d30" have entirely different histories.

7 changed files with 128 additions and 61 deletions

View File

@ -1 +0,0 @@
f6830b2a618f61b4ace5f47104d87cd0697536d6 at-spi2-core-2.40.3.tar.xz

7
.gitignore vendored
View File

@ -124,10 +124,3 @@ at-spi2-core-0.3.4.tar.bz2
/at-spi2-core-2.37.90.tar.xz
/at-spi2-core-2.37.92.tar.xz
/at-spi2-core-2.38.0.tar.xz
/at-spi2-core-2.39.90.tar.xz
/at-spi2-core-2.39.90.1.tar.xz
/at-spi2-core-2.39.91.tar.xz
/at-spi2-core-2.40.0.tar.xz
/at-spi2-core-2.40.1.tar.xz
/at-spi2-core-2.40.2.tar.xz
/at-spi2-core-2.40.3.tar.xz

View File

@ -1,14 +1,14 @@
Name: at-spi2-core
Version: 2.40.3
Release: 1%{?dist}
Version: 2.38.0
Release: 3%{?dist}
Summary: Protocol definitions and daemon for D-Bus at-spi
License: LGPLv2+
URL: http://www.linuxfoundation.org/en/AT-SPI_on_D-Bus
Source0: http://download.gnome.org/sources/at-spi2-core/2.40/%{name}-%{version}.tar.xz
# scriptlet to set AT_SPI_BUS for XWayland apps that run as root (i.e. anaconda)
# https://bugzilla.redhat.com/show_bug.cgi?id=1821345
Source1: xwayland-session-scriptlet
Source0: http://download.gnome.org/sources/at-spi2-core/2.38/%{name}-%{version}.tar.xz
# https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/25
Patch0: fix-login-screen-a11y.patch
BuildRequires: dbus-devel
BuildRequires: gettext
@ -49,11 +49,11 @@ API documentation for libatspi.
%install
%meson_install
install -d %{buildroot}%{_sysconfdir}/xdg/Xwayland-session.d
install -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/Xwayland-session.d/00-at-spi
%{find_lang} %{name}
%ldconfig_scriptlets
%files -f %{name}.lang
%license COPYING
%doc AUTHORS README
@ -62,12 +62,6 @@ install -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/Xwayland-session.d/00-
%dir %{_datadir}/defaults/at-spi2
%{_datadir}/defaults/at-spi2/accessibility.conf
%{_sysconfdir}/xdg/autostart/at-spi-dbus-bus.desktop
# the 'logical' owner of this dir is gnome-settings-daemon, but g-s-d
# indirectly depends on this package, so depending on it to provide
# this directory would create a circular dependency. so we just co-own
# it instead
%dir %{_sysconfdir}/xdg/Xwayland-session.d
%{_sysconfdir}/xdg/Xwayland-session.d/00-at-spi
%{_libdir}/libatspi.so.*
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/Atspi-2.0.typelib
@ -76,6 +70,7 @@ install -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/Xwayland-session.d/00-
%{_datadir}/dbus-1/services/org.a11y.Bus.service
%{_userunitdir}/at-spi-dbus-bus.service
%files devel
%{_libdir}/libatspi.so
%{_datadir}/gtk-doc/html/libatspi
@ -85,35 +80,6 @@ install -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/Xwayland-session.d/00-
%{_libdir}/pkgconfig/atspi-2.pc
%changelog
* Mon Aug 23 2021 Kalev Lember <klember@redhat.com> - 2.40.3-1
- Update to 2.40.3
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.40.1-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed May 05 2021 Kalev Lember <klember@redhat.com> - 2.40.1-1
- Update to 2.40.1
* Thu Apr 15 2021 Adam Williamson <awilliam@redhat.com> - 2.40.0-3
- Install a scriptlet to fix AT_SPI_BUS for Xwayland apps run as root (#1821345)
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.40.0-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 2.40.0-1
- Update to 2.40.0
* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 2.39.91-1
- Update to 2.39.91
* Mon Feb 22 2021 Kalev Lember <klember@redhat.com> - 2.39.90.1-1
- Update to 2.39.90.1
* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 2.39.90-1
- Update to 2.39.90
- Drop unused ldconfig_scriptlets macro call
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.38.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

118
fix-login-screen-a11y.patch Normal file
View File

@ -0,0 +1,118 @@
From 260a4414ac26cc5e91dc56b6a10b5dda3dae22cd Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Thu, 24 Sep 2020 15:06:44 -0500
Subject: [PATCH] Don't use dbus-broker if not running under systemd
Since gdm@febeb9a9, gdm no longer runs a systemd user session, because
gdm supports multiseat but systemd only allows one graphical session per
user. Since gdm currently runs as the gdm user, that means we cannot use
systemd there. Benjamin Berg says we could fix that by changing gdm to
use temporary users for each seat, but that would be a lot of work.
Meanwhile, dbus-broker relies on systemd to autostart D-Bus services. So
if we are not running a systemd user session, nothing gets autostarted
in response to D-Bus calls. That means orca never gets any response to
its method calls to org.a11y.atspi.Registry, and we wind up with no
accessibility on the gnome-shell login screen.
Fix this by implementing Benjamin's suggested check to see if we are
running under systemd before using dbus-broker. So now we will use
dbus-daemon on the login screen, but we will still use dbus-broker for
the user session (except in distros that still prefer dbus-daemon...
which is actually the default configuration). libsystemd is added as a
build dependency whenever built with dbus-broker support, which should
be uncontroversial because it won't work without systemd.
I expect dbus-daemon is going to live alongside dbus-broker for a long
time, because it seems very hard for us to migrate fully.
Big thanks to Benjamin Berg for discovering the problem and suggesting
this solution.
Fixes #25
---
bus/at-spi-bus-launcher.c | 18 ++++++++++++++++++
bus/meson.build | 11 ++++++++++-
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c
index 362fd05f..d7c66900 100644
--- a/bus/at-spi-bus-launcher.c
+++ b/bus/at-spi-bus-launcher.c
@@ -39,6 +39,9 @@
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#endif
+#ifdef DBUS_BROKER
+#include <systemd/sd-login.h>
+#endif
typedef enum {
A11Y_BUS_STATE_IDLE = 0,
@@ -392,11 +395,26 @@ static gboolean
ensure_a11y_bus_broker (A11yBusLauncher *app, char *config_path)
{
char *argv[] = { DBUS_BROKER, config_path, "--scope", "user", NULL };
+ char *unit;
struct sockaddr_un addr = { .sun_family = AF_UNIX };
socklen_t addr_len = sizeof(addr);
GPid pid;
GError *error = NULL;
+ /* 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.
+ */
+ if (sd_pid_get_user_unit (getpid (), &unit) >= 0)
+ {
+ free (unit);
+ }
+ else
+ {
+ app->state = A11Y_BUS_STATE_ERROR;
+ return FALSE;
+ }
+
if ((app->listenfd = socket (PF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0)) < 0)
g_error ("Failed to create listening socket: %s", strerror (errno));
diff --git a/bus/meson.build b/bus/meson.build
index 0fff5a89..f6c32c99 100644
--- a/bus/meson.build
+++ b/bus/meson.build
@@ -48,13 +48,16 @@ else
endif
endif
+needs_systemd = false
if get_option('dbus_broker') != 'default'
launcher_args += '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker'))
+ needs_systemd = true
else
dbus_broker = find_program('dbus-broker-launch',
required: false)
if dbus_broker.found()
launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.path())
+ needs_systemd = true
endif
endif
@@ -62,9 +65,15 @@ if get_option('default_bus') == 'dbus-broker'
launcher_args += '-DWANT_DBUS_BROKER'
endif
+if needs_systemd
+ systemd_dep = dependency('libsystemd')
+else
+ systemd_dep = dependency('', required: false)
+endif
+
executable('at-spi-bus-launcher', 'at-spi-bus-launcher.c',
include_directories: [ root_inc, include_directories('.') ],
- dependencies: [ gio_dep, x11_deps ],
+ dependencies: [ gio_dep, systemd_dep, x11_deps ],
c_args: launcher_args,
install: true,
install_dir: atspi_libexecdir)
--
GitLab

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -1 +1 @@
SHA512 (at-spi2-core-2.40.3.tar.xz) = 85adf3da0a369d7f3481646a495a9c4c3337da3ae6a20ce8c924f8621d3d6ed1d9461bfac0e821dfe86e4ad6b930e4fd65d24c26401cbea644ef4951e5dda5ce
SHA512 (at-spi2-core-2.38.0.tar.xz) = 3a1eb27cff6e0dd03119b4f8361a3b6037b26c511e80e2d003d1d5c41fede6d49eb5e0ac1ee45cfb4f3ca8e53292a7e2da67df80be28e77014775e41777a96c1

View File

@ -1,3 +0,0 @@
#!/bin/sh
xprop -root -format AT_SPI_BUS 8s -set 'AT_SPI_BUS' "$( busctl call --user org.a11y.Bus /org/a11y/bus org.a11y.Bus GetAddress | sed 's/s "\(.*\)"/\1/' )"