Difference between revisions of "GDM"

From CBLFS
Jump to navigationJump to search
(Configuring GDM)
 
(27 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| http://ftp.gnome.org/pub/gnome/sources/gdm/2.16/gdm-2.16.1.tar.bz2
+
| http://ftp.gnome.org/pub/gnome/sources/gdm/{{GDM-Version2}}/gdm-{{GDM-Version}}.tar.bz2
 
|}
 
|}
  
 
----
 
----
 +
 +
{{Package-Introduction|GDM is the GNOME Display Manager, a graphical login program.|http://www.gnome.org/projects/gdm/}}
 +
 +
{{Note|GDM is at version {{GDM-Version}} because newer versions such as 2.22.x and 2.24.x are missing programs like gdmsetup.}}
  
 
== Dependencies ==
 
== Dependencies ==
Line 13: Line 17:
 
* [[GNOME Doc-Utils]]
 
* [[GNOME Doc-Utils]]
 
* [[librsvg]]
 
* [[librsvg]]
 +
 
=== Optional ===
 
=== Optional ===
 
* [[intltool]]
 
* [[intltool]]
* [[Linux-Pam]]
+
* [[Linux-PAM]]
 
* [[TCP Wrappers]]
 
* [[TCP Wrappers]]
 
* [[OpenAFS]]
 
* [[OpenAFS]]
 
* [[usermode]]
 
* [[usermode]]
 +
* [[ConsoleKit]]
 
* [[SELinux]]
 
* [[SELinux]]
  
Line 24: Line 30:
  
 
  groupadd -g 23 gdm &&
 
  groupadd -g 23 gdm &&
  useradd -c "GDM Daemon Owner" -d /dev/null \
+
  useradd -c "GDM Daemon Owner" -d /var/lib/gdm \
 
         -g gdm -s /bin/bash -u 23 gdm
 
         -g gdm -s /bin/bash -u 23 gdm
  
Line 41: Line 47:
 
Compile the package:
 
Compile the package:
  
 +
CPPFLAGS="-I${XORG_PREFIX}/include" \
 
  ./configure --prefix=${GNOME_PREFIX} \
 
  ./configure --prefix=${GNOME_PREFIX} \
 
     --sysconfdir=/etc/gnome \
 
     --sysconfdir=/etc/gnome \
Line 46: Line 53:
 
     --libexecdir=${GNOME_PREFIX}/lib/gdm \
 
     --libexecdir=${GNOME_PREFIX}/lib/gdm \
 
     --mandir=${GNOME_PREFIX}/share/man \
 
     --mandir=${GNOME_PREFIX}/share/man \
     --with-pam-prefix=/etc &&
+
     --with-pam-prefix=/etc --with-xevie=yes &&
 
  make
 
  make
  
Line 64: Line 71:
  
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" &&
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" &&
 +
CPPFLAGS="-I${XORG_PREFIX}/include" \
 
  CC="gcc ${BUILD32}" USE_ARCH=32 \
 
  CC="gcc ${BUILD32}" USE_ARCH=32 \
 
  ./configure --prefix=${GNOME_PREFIX} \
 
  ./configure --prefix=${GNOME_PREFIX} \
Line 70: Line 78:
 
     --libexecdir=${GNOME_PREFIX}/lib/gdm \
 
     --libexecdir=${GNOME_PREFIX}/lib/gdm \
 
     --mandir=${GNOME_PREFIX}/share/man \
 
     --mandir=${GNOME_PREFIX}/share/man \
     --with-pam-prefix=/etc &&
+
     --with-pam-prefix=/etc --with-xevie=yes &&
 
  make
 
  make
  
Line 87: Line 95:
  
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" &&
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" &&
 +
CPPFLAGS="-I${XORG_PREFIX}/include" \
 
  CC="gcc ${BUILDN32}" USE_ARCH=n32 \
 
  CC="gcc ${BUILDN32}" USE_ARCH=n32 \
 
  ./configure --prefix=${GNOME_PREFIX} \
 
  ./configure --prefix=${GNOME_PREFIX} \
Line 94: Line 103:
 
     --libexecdir=${GNOME_PREFIX}/lib32/gdm \
 
     --libexecdir=${GNOME_PREFIX}/lib32/gdm \
 
     --mandir=${GNOME_PREFIX}/share/man \
 
     --mandir=${GNOME_PREFIX}/share/man \
     --with-pam-prefix=/etc &&
+
     --with-pam-prefix=/etc --with-xevie=yes &&
 
  make
 
  make
  
Line 111: Line 120:
  
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" &&
 
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" &&
 +
CPPFLAGS="-I${XORG_PREFIX}/include" \
 
  CC="gcc ${BUILD64}" USE_ARCH=64 \
 
  CC="gcc ${BUILD64}" USE_ARCH=64 \
 
  ./configure --prefix=${GNOME_PREFIX} \
 
  ./configure --prefix=${GNOME_PREFIX} \
Line 118: Line 128:
 
     --libexecdir=${GNOME_PREFIX}/lib64/gdm \
 
     --libexecdir=${GNOME_PREFIX}/lib64/gdm \
 
     --mandir=${GNOME_PREFIX}/share/man \
 
     --mandir=${GNOME_PREFIX}/share/man \
     --with-pam-prefix=/etc &&
+
     --with-pam-prefix=/etc --with-xevie=yes &&
 
  make
 
  make
  
Line 134: Line 144:
 
  install -v -m755 -d /var/log/gdm &&
 
  install -v -m755 -d /var/log/gdm &&
 
  sed -i.orig "/\[daemon\]/ a LogDir=/var/log/gdm" \
 
  sed -i.orig "/\[daemon\]/ a LogDir=/var/log/gdm" \
     /etc/gnome/gdm/custom.conf &&
+
     /etc/gnome/gdm/custom.conf
rmdir -v /var/lib/log/gdm &&
 
rmdir -v /var/lib/log
 
  
 
You may also want to set a default gtk theme:
 
You may also want to set a default gtk theme:
Line 143: Line 151:
 
     /etc/gnome/gdm/custom.conf
 
     /etc/gnome/gdm/custom.conf
  
If you have [[Linux-Pam]] installed run the following commands:
+
If you have [[Linux-PAM]] installed run the following commands:
  
  cp -v /etc/pam.d/{login,gdm} &&
+
  cat > /etc/pam.d/gdm << "EOF" &&
  cp -v /etc/pam.d/{login,gdm-autologin} &&
+
#%PAM-1.0
 +
 +
auth      include      system-auth
 +
account    include      system-auth
 +
password  include      system-auth
 +
session    include      system-auth
 +
EOF
 +
  cp /etc/pam.d/gdm{,-autologin} &&
 
  echo "auth      required    pam_permit.so" >> /etc/pam.d/gdm-autologin
 
  echo "auth      required    pam_permit.so" >> /etc/pam.d/gdm-autologin
  
If you have [[DBUS]] installed and you want to start the session [[DBUS]] daemon when you start the GNOME desktop environment using gdm, you'll need to create a new Xsession file:
+
If you built GDM with [[usermode]] installed then you need to make a PAM config for gdmsetup as well as a symlink to consolehelper:
 +
 
 +
cp /etc/pam.d/gdm{,setup} &&
 +
ln -sfv /usr/bin/consolehelper ${GNOME_PREFIX}/bin/gdmsetup &&
 +
sed -i "s/sbin/bin/g" ${GNOME_PREFIX}/share/gdm/applications/gdmsetup.desktop
  
cat > $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop << "EOF"
+
{{Note|If you make the link to consolehelper a regular users will beable to configure GDM by entering root's password.}}
[Desktop Entry]
+
 
Encoding=UTF-8
+
Gnome expects to be started with dbus-launch. The following makes the appropriate change to the session script so that happens:
  Name=GNOME with D-BUS
+
 
Comment=GNOME Desktop with D-BUS support
+
  sed -i -e "/^Exec=/s/=/&dbus-launch --exit-with-session /" \
Exec=dbus-launch --exit-with-session gnome-session
+
    -e "/^TryExec=/s@=.*@=/usr/bin/dbus-launch@" \
TryExec=/usr/bin/dbus-launch
+
    ${GNOME_PREFIX}/share/xsessions/gnome.desktop
Icon=
+
 
Type=Application
+
=== Launching GDM ===
+
 
EOF
+
The easiest way to do this is from a line in inittab:
  chmod -v 644 $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop
+
 
 +
  x:5:respawn:/usr/sbin/gdm --nodaemon
 +
 
 +
[[Category:Display Managers]]

Latest revision as of 10:13, 5 April 2009

Download Source: http://ftp.gnome.org/pub/gnome/sources/gdm/2.20/gdm-2.20.8.tar.bz2

Introduction to GDM

GDM is the GNOME Display Manager, a graphical login program.

Project Homepage: http://www.gnome.org/projects/gdm/

Caution.png

Note

GDM is at version 2.20.8 because newer versions such as 2.22.x and 2.24.x are missing programs like gdmsetup.

Dependencies

Required

Optional

Creating the GDM User/Group

groupadd -g 23 gdm &&
useradd -c "GDM Daemon Owner" -d /var/lib/gdm \
        -g gdm -s /bin/bash -u 23 gdm

Configuration Information

To enable secure remote connections you must have Zenity, OpenSSH and which installed add the following argument to your configure command:

--enable-secureremote=yes

Non-Multilib

GDM looks in /usr/X11R6 for the X server, If you installed an X Window System to a prefix other then /usr/X11R6 then run the following command:

sed -i "s:/usr/X11R6:${XORG_PREFIX}:g" $(grep -lr /usr/X11R6 *)

Compile the package:

CPPFLAGS="-I${XORG_PREFIX}/include" \
./configure --prefix=${GNOME_PREFIX} \
    --sysconfdir=/etc/gnome \
    --localstatedir=/var/lib \
    --libexecdir=${GNOME_PREFIX}/lib/gdm \
    --mandir=${GNOME_PREFIX}/share/man \
    --with-pam-prefix=/etc --with-xevie=yes &&
make

Install the package

make install

Multilib

32Bit

GDM looks in /usr/X11R6 for the X server, If you installed an X Window System to a prefix other then /usr/X11R6 then run the following command:

sed -i "s:/usr/X11R6:${XORG_PREFIX}:g" $(grep -lr /usr/X11R6 *)

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" &&
CPPFLAGS="-I${XORG_PREFIX}/include" \
CC="gcc ${BUILD32}" USE_ARCH=32 \
./configure --prefix=${GNOME_PREFIX} \
    --sysconfdir=/etc/gnome \
    --localstatedir=/var/lib \
    --libexecdir=${GNOME_PREFIX}/lib/gdm \
    --mandir=${GNOME_PREFIX}/share/man \
    --with-pam-prefix=/etc --with-xevie=yes &&
make

Install the package

make install &&
unset PKG_CONFIG_PATH

N32

GDM looks in /usr/X11R6 for the X server, If you installed an X Window System to a prefix other then /usr/X11R6 then run the following command:

sed -i "s:/usr/X11R6:${XORG_PREFIX}:g" $(grep -lr /usr/X11R6 *)

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" &&
CPPFLAGS="-I${XORG_PREFIX}/include" \
CC="gcc ${BUILDN32}" USE_ARCH=n32 \
./configure --prefix=${GNOME_PREFIX} \
    --libdir=${GNOME_PREFIX}/lib32 \
    --sysconfdir=/etc/gnome \
    --localstatedir=/var/lib \
    --libexecdir=${GNOME_PREFIX}/lib32/gdm \
    --mandir=${GNOME_PREFIX}/share/man \
    --with-pam-prefix=/etc --with-xevie=yes &&
make

Install the package

make install &&
unset PKG_CONFIG_PATH

64Bit

GDM looks in /usr/X11R6 for the X server, If you installed an X Window System to a prefix other then /usr/X11R6 then run the following command:

sed -i "s:/usr/X11R6:${XORG_PREFIX}:g" $(grep -lr /usr/X11R6 *)

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" &&
CPPFLAGS="-I${XORG_PREFIX}/include" \
CC="gcc ${BUILD64}" USE_ARCH=64 \
./configure --prefix=${GNOME_PREFIX} \
    --libdir=${GNOME_PREFIX}/lib64 \
    --sysconfdir=/etc/gnome \
    --localstatedir=/var/lib \
    --libexecdir=${GNOME_PREFIX}/lib64/gdm \
    --mandir=${GNOME_PREFIX}/share/man \
    --with-pam-prefix=/etc --with-xevie=yes &&
make

Install the package

make install &&
unset PKG_CONFIG_PATH

Configuring GDM

The default configuration parameters are stored in a static file ($GNOME_PREFIX/share/gdm/defaults.conf). This file is not intended to be edited. If modification of the configuration is necessary, you should add parameters to the /etc/gnome/gdm/custom.conf file. The settings in this file will override the settings in the static file. The same parameters in the static file are used in the configuration file.

Change the directory containing the GDM log files to the /var/log hierarchy:

install -v -m755 -d /var/log/gdm &&
sed -i.orig "/\[daemon\]/ a LogDir=/var/log/gdm" \
    /etc/gnome/gdm/custom.conf

You may also want to set a default gtk theme:

sed -i "/\[gui\]/ a GtkTheme=Clearlooks" \
    /etc/gnome/gdm/custom.conf

If you have Linux-PAM installed run the following commands:

cat > /etc/pam.d/gdm << "EOF" &&
#%PAM-1.0

auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    include      system-auth
EOF
cp /etc/pam.d/gdm{,-autologin} &&
echo "auth       required     pam_permit.so" >> /etc/pam.d/gdm-autologin

If you built GDM with usermode installed then you need to make a PAM config for gdmsetup as well as a symlink to consolehelper:

cp /etc/pam.d/gdm{,setup} &&
ln -sfv /usr/bin/consolehelper ${GNOME_PREFIX}/bin/gdmsetup &&
sed -i "s/sbin/bin/g" ${GNOME_PREFIX}/share/gdm/applications/gdmsetup.desktop
Caution.png

Note

If you make the link to consolehelper a regular users will beable to configure GDM by entering root's password.

Gnome expects to be started with dbus-launch. The following makes the appropriate change to the session script so that happens:

sed -i -e "/^Exec=/s/=/&dbus-launch --exit-with-session /" \
    -e "/^TryExec=/s@=.*@=/usr/bin/dbus-launch@" \
    ${GNOME_PREFIX}/share/xsessions/gnome.desktop

Launching GDM

The easiest way to do this is from a line in inittab:

x:5:respawn:/usr/sbin/gdm --nodaemon
Retrieved from "?title=GDM&oldid=18044"