Bug#850291: gdm3: dependencies do not include an X11 server and a window manager

Simon McVittie smcv at debian.org
Sun Mar 28 16:45:23 BST 2021


Control: clone -1 -2
Control: notfound -1 3.30.2-3
Control: close -1 3.24.2-3
Control: retitle -2 gdm3: dependencies do not include an X11 server and a window manager

On Wed, 12 Jun 2019 at 08:56:56 -0500, Pascal Liehne wrote:
> Package: gdm3
> Version: 3.30.2-3
> Followup-For: Bug #850291
>
> It looks like the bug is back. After install of gdm3 and gnome-terminal
> in one command and login I get only the background image.
>
> HowTo reproduce:
> - Install Debian 10 RC1 via Netinstaller without additional software
> - run: apt-get install gdm3 gnome-terminal
> - reboot, so gdm3 ist started
> - login
> - you will see only the background image.

Sorry for the delay in responding to this. For future reference, it's
usually better to report a new bug than to reply to a bug that has already
been closed, particularly if you are not 100% sure that the old bug and
the new bug have the same root cause.

I don't think this is actually the same bug as #850291, so I've cloned
it to have a new bug number, and I'm closing #850291 again. Please use
the new bug number (when it gets allocated) for any further discussion
of this.

In #850291, the symptom was that without gnome-session installed, the
gdm greeter (the login prompt where you choose a username and session
type and enter your password) constantly restarts and is unusable.

In this new bug report, the greeter *is* usable - you get a list of users,
and you can attempt to log in. However, the login session does not
actually *work*. That seems like a distinct bug that should be handled
separately.

When I initially tried it, I got a different failure mode:
- The screen flashes to blank for a moment
- I'm brought back to the greeter prompt

This is because gdm3 does not depend on an X11 server (xserver-xorg-core).
Historically, gdm3 relied on X11 both to display the greeter and to run the
login session. However, now that GNOME uses Wayland by default, you can
run the gdm greeter and even a full GNOME session without actually needing
an X11 server - so it would seem incorrect for gdm3 to have a hard
dependency on xserver-xorg-core.

After installing xserver-xorg-core and rebooting, I get a different
failure mode: I log in, I see a background image (a blue elliptical
gradient, fading to a darker blue in the corners of the screen),
and there is no obvious way to interact with the system other than
rebooting: not even VT switching via Ctrl+Alt+F5 works. This is because
xserver-xorg-core is so minimal that it does not include any input
drivers. The next step is to install xserver-xorg, a metapackage that
includes video and input drivers.  This is in gdm3's Recommends list
("packages that would be found together with this one in all but unusual
installations") but is not a hard dependency.

After installing xserver-xorg and rebooting, the new failure mode is
that I get the same background image as before, but now at least VT
switching via Ctrl+Alt+F5 works as expected. It appears that because
we do not have any more complete desktop environments installed, the
window manager that has been selected as a fallback is /usr/bin/mutter,
which is a relatively minimal demo/example window manager: it does not
have any built-in "chrome" to launch programs (like a panel or a menu),
but we can log in as the same user on a text console and run
"DISPLAY=:0 xterm" (if xterm is indeed installed), or create a file
~/.xsession with contents like this:

    #!/bin/sh
    xterm &
    exec x-window-manager

to get a minimal, but minimally usable, desktop session.

Obviously none of this is ideal, but I would have a hard time
characterising any of this as being a release-critical bug, or choosing
where to put extra dependencies to make this work "out of the box".

The underlying issue here is that if you want things "already done
for you", then installing a complete desktop environment like GNOME,
KDE Plasma or XFCE is going to be a better route than building your own
desktop environment from individual pieces; and if you want to build your
own desktop environment from individual pieces, this is going to require
some understanding of how the pieces fit together and which ones you want.

If we added enough dependencies to make apt prevent you from accidentally
setting up an incomplete environment that is not actually practically
usable, then we would also prevent advanced users from building their own
desktop environments (or non-desktop-environment graphical environments)
that are more minimal.

In bullseye (Debian 11 prerelease), this is mitigated by gnome-shell no
longer having a dependency on mutter. It is still necessary to install
xserver-xorg-core and at least one input driver (which, again, are part
of gdm3's Recommends), but the fallback X11 session in a very minimal
installation will now be the x-terminal-emulator (gnome-terminal in your
example) rather than mutter, so at least you get a prompt from which you
can run more programs.

Some other ideas for possible improvements:

- gnome-shell could have a Recommends on gnome-session, as a heavier hint
  that gnome-session is how you get the intended GNOME session user
  experience. However, this would be circular
  (gnome-shell Depends: gnome-session Recommends: gnome-shell), which is
  probably undesirable.

- gdm3 could have a Recommends on "gnome-session | x-session-manager",
  with no x-window-manager or x-terminal-emulator alternative, as a
  heavier hint that an x-session-manager is a really good idea. Xsession
  runs an x-session-manager in preference to a plain x-window-manager
  or an x-terminal-emulator, so installing an x-session-manager (such
  as gnome-session or xfce4-session) would result in that session being
  run in preference to mutter.

    smcv



More information about the pkg-gnome-maintainers mailing list