GDM is a system service that is responsible for providing graphical
logins and managing local and remote display.

Critical note on Slackware:
Slackware has it's '/etc/rc.d/rc.4' script starting gdm with an invalid
command line option, which will cause gdm to fail starting in runlevel
4. To use gdm, you will need to edit '/etc/rc.d/rc.4' to remove the 
'-nodaemon' option from being passed to gdm. After editing, the gdm 
lines should look like this:

if [ -x /usr/bin/gdm ]; then
  exec /usr/bin/gdm
fi

# Someone thought that gdm looked prettier in /usr/sbin,
# so look there, too:
if [ -x /usr/sbin/gdm ]; then
  exec /usr/sbin/gdm
fi

A note on PAM:
The GDM source includes PAM configs for linux distros like redhat, lfs,
and arch. However, none of these pre-designed configs are suitable for 
Slackware's PAM configuration. Therefore I used 'sddm' as a reference
and wrote configs for 'gdm' that work properly. I didn't include 
'gdm-fingerprint' or 'gdm-smartcard', since I don't have the hardware 
needed to properly test functionality. 

Additional Notes:
- Slackware comes with the 'gdm' group and user already configured, so 
nothing needs to be done there.

- GDM can be built without 'gnome-session' and 'gnome-shell' installed,
but 'gdm' will be unusable at runtime without them.
