[Bug 1231091] Re: Screenreader starts, but does not work with installer (ubiquity) in live session
Gordon N. Squash
1231091 at bugs.launchpad.net
Sun Aug 22 01:42:59 UTC 2021
It's been well over a month since I last reported on this, so I think
it's fine time I reported about the latest on the subject.
My above comment was mostly correct and slightly wrong. Interestingly,
stock Ubuntu 21.10 does not use Wayland (on my setup, at least, with
Intel integrated graphics); it uses X11, just like Ubuntu MATE does.
But interestingly, Ubiquity on stock Ubuntu starts the *GNOME Shell*,
whereas Ubiquity on Ubuntu MATE only starts Marco, a generic Ubiquity
top panel (which is supposed to be stocked with indicators, but
Ubiquity's panel only works with Unity indicators and not Ayatana
indicators), the MATE Settings Daemon, and a handful of other programs.
Furthermore, like I suspected, both Ubuntu and Ubuntu MATE start the
Ubiquity greeter as root, except their *effective* user IDs are both the
respective live session users (`ubuntu` and `ubuntu-mate`,
respectively). The latter is done probably to allow communication over
D-Bus, because my experiments show that if the process' effective UID is
not 999 (the live session user), neither version of Ubiquity will
interact with the screen reader.
Here's the proof. The first snippet was taken on an Ubuntu 21.10 system
(that took me eons to download); the second is from an Ubuntu MATE 21.10
system.
Ubuntu:
RUSER EUSER PID PPID COMMAND
ubuntu ubuntu 1948 1941 /usr/bin/pipewire
ubuntu ubuntu 1949 1941 /usr/bin/pipewire-media-session
ubuntu ubuntu 1950 1941 /usr/bin/pulseaudio --daemonize=no --log-target=journal
ubuntu ubuntu 1953 1941 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
ubuntu ubuntu 1966 1941 /usr/libexec/dconf-service
ubuntu ubuntu 1983 1703 /usr/libexec/gsd-a11y-settings
ubuntu ubuntu 1986 1703 /usr/libexec/gsd-keyboard
ubuntu ubuntu 1987 1703 /usr/libexec/gsd-media-keys
ubuntu ubuntu 2004 1703 /usr/libexec/gsd-power
ubuntu ubuntu 2005 1703 /usr/libexec/gsd-xsettings
ubuntu ubuntu 2006 1703 gnome-shell --sm-disable --mode=ubiquity
root ubuntu 2028 2009 /usr/bin/python3 /usr/lib/ubiquity/bin/ubiquity --greeter --only
ubuntu ubuntu 2151 2146 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
ubuntu ubuntu 2166 1941 /usr/libexec/at-spi2-registryd --use-gnome-session
Ubuntu MATE:
RUSER EUSER PID PPID COMMAND
ubuntu-+ ubuntu-+ 1882 1875 /usr/bin/pulseaudio --daemonize=no --log-target=journal
ubuntu-+ ubuntu-+ 1893 1875 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
ubuntu-+ ubuntu-+ 1896 1875 /usr/libexec/dconf-service
ubuntu-+ ubuntu-+ 1926 1694 /usr/bin/mate-settings-daemon
ubuntu-+ ubuntu-+ 1927 1694 marco --sm-disable
ubuntu-+ ubuntu-+ 1931 1694 /usr/lib/ubiquity/panel
ubuntu-+ ubuntu-+ 1938 1694 nm-applet
ubuntu-+ ubuntu-+ 2000 1875 /usr/libexec/at-spi-bus-launcher
ubuntu-+ ubuntu-+ 2007 2000 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
root ubuntu-+ 2008 1942 /usr/bin/python3 /usr/lib/ubiquity/bin/ubiquity --greeter --only
ubuntu-+ ubuntu-+ 2093 1875 /usr/libexec/at-spi2-registryd --use-gnome-session
The output was abbreviated slightly; I remove unrelated processes like
the RealtimeKit daemon and UDisks.
As you can see, the Ubiquity process (`/usr/bin/python3
/usr/lib/ubiquity/bin/ubiquity` on both of them) runs with a real UID of
root, but an effective UID of either `ubuntu` or `ubuntu-mate` (the
latter was chopped off by `ps`). So there's no dissimilarity there.
***However...***
With the screen reader enabled, from a command line (Ctrl-Alt-F2) I
tried launching a text editor on each of them, first as user 999:
DISPLAY=":0" pluma &
...and then as root:
sudo env DISPLAY=":0" pluma &
...and then with a real UID of 0 and an effective UID of 999, just like
Ubiquity:
sudo env DISPLAY=":0" setpriv --ruid 0 --rgid 0 --euid 999 --egid 999
--init-groups pluma &
The first command cooperated with the screen reader on both systems
(i.e., the screen reader told me stuff like "Edit menu... Select All
Ctrl-A"). The last two commands worked fine on Ubuntu but not on Ubuntu
MATE.
I tried these experiments also on the live desktop, not just at the
Ubiquity greeter. The results were the same regardless of whether I
tried it on the live desktop or on the Ubiquity greeter.
Clearly, Ubuntu and Ubuntu MATE are configured differently, somehow
pertaining to user IDs allowed to use accessibility features. But
where?
I ran the above experiments, but through `strace -s 1048576` to capture
all (or most) communications going on between pluma / gedit and D-Bus.
The results were stunning:
On **both systems**, the first command (running as user ID 999) printed
loads of D-Bus interactions involving the accessibility bus; I ran `grep
a11y` and that turned up dozens of results. On **only the Ubuntu
system** did I find any instance of the word `a11y` from the last two
commands. I didn't even find any D-Bus interaction at all from the last
two commands on the Ubuntu MATE system!
The working theory I have so far is that Ubuntu MATE's D-Bus permissions
are somehow more strict than Ubuntu's, so processes like Ubiquity which
could "potentially" elevate their privileges above where they are
currently can't communicate on the bus. But I have no outright *proof*
of that yet.
Anyway, I'll keep digging!
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubiquity in Ubuntu.
https://bugs.launchpad.net/bugs/1231091
Title:
Screenreader starts, but does not work with installer (ubiquity) in
live session
Status in ubiquity package in Ubuntu:
Triaged
Status in ubuntu-mate-settings package in Ubuntu:
Fix Released
Bug description:
Image: 20130925
I started the image and let it boot to the gui selector for live
session or install only. When the drum sound played, I pressed ctrl-s
to start the screen reader and heard the familiar "screenreader on"
sound, and it read the options to me. From there, I started the live
session, and went into the installer, but orca would not read any of
the screens. I also started a terminal window and noticed that it
says "window" when I move the mouse over the unity launcher icon, and
"unity dash" when I click on it, but nothing in the terminal is read
to me either. So I don't think this is limited to just ubiquity.
ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: gnome-orca 3.9.92-0ubuntu1
ProcVersionSignature: Ubuntu 3.11.0-8.15-generic 3.11.1
Uname: Linux 3.11.0-8-generic x86_64
ApportVersion: 2.12.4-0ubuntu1
Architecture: amd64
CasperVersion: 1.336ubuntu1
Date: Wed Sep 25 14:04:20 2013
LiveMediaBuild: Ubuntu 13.10 "Saucy Salamander" - Beta amd64 (20130925)
MarkForUpload: True
PackageArchitecture: all
SourcePackage: gnome-orca
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1231091/+subscriptions
More information about the foundations-bugs
mailing list