Project

General

Profile

Feature #17084

Make it easier to debug the Greeter

Added by segfault about 2 months ago. Updated about 2 months ago.

Status:
Confirmed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Feature Branch:
Type of work:
Code
Blueprint:
Starter:
Affected tool:
Greeter

Description

While working on #16912 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.

Associated revisions

Revision fb5f2bcc (diff)
Added by segfault about 2 months ago

Hide duplicate and obscure keyboard layouts in the Greeter (refs: #17084)

Revision d97a5c0d (diff)
Added by segfault about 2 months ago

Hide duplicate and obscure keyboard layouts in the Greeter (refs: #17084)

History

#1 Updated by segfault about 2 months ago

  • Status changed from Confirmed to In Progress

#2 Updated by segfault about 2 months ago

  • Affected tool set to Greeter

#3 Updated by segfault about 2 months ago

  • Status changed from In Progress to Confirmed

Also available in: Atom PDF