Skip to content

Make it easier to debug the Greeter

While working on #16912 (closed) and #15635, I found that the instructions in greeter.git/HACKING for testing the Greeter in a running Tails don’t work, because restarting gdm.service doesn’t restart the Greeter.

I found another way to test changes to the Greeter without rebuilding Tails:

  1. Boot Tails (in a VM) with break=bottom and rootpw=<password> kernel command-line options.
  2. In the initramfs, edit /root/usr/share/applications/tails-greeter.desktop, replace the Exec= line with Exec=gnome-terminal -- /bin/bash.
  3. In the gnome-terminal, log in as root with the root password set above: Debian-gdm@amnesia:~$ su
  4. If you want to copy code via the clipboard from the host system, open the file you want to modify via gedit: # Changing the DCONF_PROFILE is required to be able to save the file via gedit
    DCONF_PROFILE=user gedit /usr/local/lib/python3/dist-packages/tailsgreeter/gui.py
  5. Remove all self.__greeter and self.__user_verifier lines from the __init__ function from /home/user/projects/tails/config/chroot_local-includes/usr/lib/python3/dist-packages/tailsgreeter/gdmclient.py. These commands fail if run from outside a GDM session, i.e. from the gnome-terminal shell.
  6. Exit the root shell and execute the greeter: root@amnesia:/var/lib/gdm3# exit Debian-gdm@amnesia:~$ /usr/local/lib/tails-greeter

This starts a functional greeter, except that it won’t start Tails, because of the lines deleted in step 5.

I wanted to document this somewhere, so that I can find it when I have to debug the greeter again.

Also, we could make step 5 easier if we check whether an environment variable like “TAILS_TEST_GREETER” is set, and don’t execute the failing commands in gdmclient.py in that case - similar to the GDM_TEST_GREETER variable supported in gnome-shell, see https://bugzilla.gnome.org/show_bug.cgi?id=683725.

Original created by @segfault on 17084 (Redmine)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information