glfs/gnome/add/gdm.xml
Wayne Blaszczyk fcc42ef258 ticket 2988
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@8884 af4574ff-66df-0310-9fd7-8a98e5e911e0
2011-06-08 12:16:49 +00:00

405 lines
15 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY gdm-download-http "&gnome-download-http;/gdm/&gnome-version;/gdm-&gdm-version;.tar.bz2">
<!ENTITY gdm-download-ftp "&gnome-download-ftp;/gdm/&gnome-version;/gdm-&gdm-version;.tar.bz2">
<!ENTITY gdm-md5sum "ba35f9f750b50be572952195989df2c5">
<!ENTITY gdm-size "2.3 MB">
<!ENTITY gdm-buildsize "51 MB">
<!ENTITY gdm-time "0.8 SBU">
]>
<sect1 id="gdm" xreflabel="GDM-&gdm-version;">
<?dbhtml filename="gdm.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>GDM-&gdm-version;</title>
<indexterm zone="gdm">
<primary sortas="a-GDM">GDM</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GDM</title>
<para>The <application>GDM</application> package contains
<application>GNOME</application>'s Display Manager daemon. This is
useful for allowing configurable graphical logins.</para>
&lfs67_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&gdm-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&gdm-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &gdm-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &gdm-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &gdm-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &gdm-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Required patch: <ulink
url="&patch-root;/gdm-&gdm-version;-fixes-1.patch"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">GDM Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="gnome-panel"/> and
<xref linkend="xorg7-lib"/></para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="consolekit"/>
(Required for Shutdown/Restart functionality) and
<xref linkend="polkit-gnome"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<ulink url="http://check.sourceforge.net/">Check</ulink>,
<xref linkend="upower"/>,
<xref linkend="libxklavier"/>, and
<xref linkend="tcpwrappers"/></para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/gdm"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of GDM</title>
<para>It is recommended to have a dedicated user and group to take
control of the <command>gdm-binary</command> daemon after it is
started. Issue the following commands as the
<systemitem class="username">root</systemitem> user:</para>
<screen role='root'><userinput>groupadd -fg 21 gdm &amp;&amp;
useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 \
-g gdm -s /bin/false gdm || [ $? == 9 ]</userinput></screen>
<para>Install <application>GDM</application> by running
the following commands as an unprivileged user:</para>
<screen><userinput>patch -Np1 -i ../gdm-&gdm-version;-fixes-1.patch &amp;&amp;
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=&gnome-etc-dir; \
--localstatedir=/var \
--libexecdir=$(pkg-config \
--variable=prefix ORBit-2.0)/lib/gdm \
--with-pam-prefix=/etc &amp;&amp;
make</userinput></screen>
<para>This package does not come with a test suite.</para>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role='root'><userinput>make install &amp;&amp;
ln -fsv $(pkg-config --variable=prefix \
ORBit-2.0)/lib/gnome-settings-daemon-2.0/gnome-settings-daemon $(pkg-config \
--variable=prefix ORBit-2.0)/lib/gdm &amp;&amp;
ln -fsv /usr/lib/ConsoleKit/ck-get-x11-display-device $(pkg-config \
--variable=prefix ORBit-2.0)/lib/gdm &amp;&amp;
ln -fsv /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 $(pkg-config \
--variable=prefix ORBit-2.0)/lib/gdm
</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/gnome-prefix.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/gnome-sysconfdir.xml"/>
<para><parameter>--localstatedir=/var</parameter>: This command
puts files in <filename class="directory">/var</filename> instead of
<filename class="directory">$GNOME_PREFIX/var</filename>.</para>
<para><parameter>--libexecdir=$(pkg-config
--variable=prefix ORBit-2.0)/lib/gdm</parameter>: This parameter is
used so that the <application>GDM</application> internal support programs
are installed in the preferred location of
<filename class='directory'>$GNOME_PREFIX/lib/gdm</filename> instead
of <filename class='directory'>$GNOME_PREFIX/libexec</filename>.</para>
<para><parameter>--with-pam-prefix=/etc</parameter>: This command puts
<application>PAM</application> configuration files in
<filename class="directory">/etc/pam.d</filename> instead of
<filename class="directory">&gnome-etc-dir;</filename>.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring GDM</title>
<sect3 id="gdm-config">
<title>Config Files</title>
<para><filename>&gnome-etc-dir;/gdm/custom.conf</filename></para>
<indexterm zone="gdm gdm-config">
<primary sortas="e-etc-gnome-&gnome-version;&gnome-minor-version;gdm-custom.conf">
&gnome-etc-dir;/gdm/custom.conf</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>The GDM daemon is configured using the
<filename>&gnome-etc-dir;/gdm/custom.conf</filename> file.
Default values are stored in GConf in the
<filename>gdm.schemas</filename> file. It is recommended that end-users
modify the <filename>&gnome-etc-dir;/gdm/custom.conf</filename> file
because the schemas file may be overwritten when the user updates their
system to have a newer version of GDM.</para>
<para>The <application>GDM</application> <application>PAM</application>
configuration files contain modules not present in a BLFS installation.
If you have <application>PAM</application> installed, issue the following
commands as the <systemitem class="username">root</systemitem> user to
replace those files with files containing correctly specified
modules:</para>
<screen role="root"><userinput>cat &gt; /etc/pam.d/gdm &lt;&lt; "EOF"
<literal>auth required pam_unix.so
auth requisite pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so</literal>
EOF
cat &gt; /etc/pam.d/gdm-autologin &lt;&lt; "EOF"
<literal>auth required pam_env.so
auth requisite pam_nologin.so
auth required pam_permit.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so</literal>
EOF</userinput></screen>
<indexterm zone="gdm gdm-config">
<primary sortas="e-etc-pam.d-gdm">/etc/pam.d/gdm</primary>
</indexterm>
<indexterm zone="gdm gdm-config">
<primary
sortas="e-etc-pam.d-gdm-autologin">/etc/pam.d/gdm-autologin</primary>
</indexterm>
<para id="gdm-config-dbus">If you have <application>D-BUS</application>
installed and you want to start the session
<application>D-BUS</application> daemon when you start the GNOME desktop
environment using <command>gdm</command>, you'll need to create a new
Xsession file. Create the file using the following command as the root
user.</para>
<screen role="root"><userinput>cat &gt; $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Encoding=UTF-8
Name=GNOME with D-BUS
Comment=GNOME Desktop with D-BUS support
Exec=dbus-launch --exit-with-session gnome-session
TryExec=/usr/bin/dbus-launch
Icon=
Type=Application</literal>
EOF
chmod -v 644 $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop</userinput></screen>
<para>Choose this session using the session selection dialog on the
display manager login screen. You also have the opportunity to make this
your default session.</para>
<note>
<para>You may use the <filename class='extension'>.desktop</filename>
file created above as an example to create additional
<filename class='extension'>.desktop</filename> files and add any other
desired items to the <application>GDM</application> display manager session
selection menu.</para>
</note>
<important>
<para>If the system-wide <application>D-BUS</application> daemon was
running during the installation of <application>gdm</application>,
ensure you stop and restart the <application>D-BUS</application>
daemon before attempting to start <command>gdm</command>.</para>
</important>
<para><command>gdm</command> can be tested by executing it as the
<systemitem class="username">root</systemitem> user. Use the
<command>gdm-stop</command> command if you wish to stop the display
manager.</para>
</sect3>
<sect3 id="gdm-init">
<title>Boot Script</title>
<para>To start a graphical login when the system is booted, install the
<filename>/etc/rc.d/init.d/gdm</filename> init script included in the
<xref linkend="bootscripts"/> package. If your
<envar>GNOME_PREFIX</envar> environment variable is anything other than
<filename class='directory'>/usr</filename> or <filename
class='directory'>/opt/gnome-&gnome-version;&gnome-minor-version;</filename>,
you will need to modify the <envar>PATH</envar> statement in the script
to include the path where you have <application>GNOME</application>
installed.</para>
<indexterm zone="gdm gdm-init">
<primary sortas="f-gdm">gdm</primary>
</indexterm>
<screen role="root"><userinput>make install-gdm</userinput></screen>
<para>Now edit <filename>/etc/inittab</filename> with the following
commands.</para>
<screen role="root"><userinput>sed -i 's/id:3:initdefault:/id:5:initdefault:/' \
/etc/inittab</userinput></screen>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>Default, Default.sample, Default, Default, Xsession, gdm,
gdm-screenshot, gdmflexiserver, gdm-crash-logger, gdm-factory-slave,
gdm-host-chooser, gdm-product-slave, gdm-session-worker,
gdm-simple-chooser, gdm-simple-greeter, gdm-simple-slave,
gdm-user-switch-applet, gdm-xdmcp-chooser-slave, gdm, gdm-binary,
gdm-restart, gdm-safe-restart, and gdm-stop</seg>
<seg>None</seg>
<seg>&gnome-etc-dir;/gdm/{Init,PostLogin,PostSession,PreSession},
<envar>$GNOME_PREFIX</envar>/{lib/gdm,share/{gnome/help/gdm/*,omf/gdm,
pixmaps/faces}},
/var/{cache/gdm,gdm,lib/gdm/.gconf.mandatory,log/gdm,
run/gdm/greeter}</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="gdmflexiserver">
<term><command>gdmflexiserver</command></term>
<listitem>
<para>is the flexi server mechanism which allows to run GDM sessions
on demand, in a new virtual console.</para>
<indexterm zone="gdm gdmflexiserver">
<primary sortas="b-gdmflexiserver">gdmflexiserver</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-screenshot">
<term><command>gdm-screenshot</command></term>
<listitem>
<para>is a screenshot tool.</para>
<indexterm zone="gdm gdm-screenshot">
<primary sortas="b-gdm-screenshot">gdm-screenshot</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-prog">
<term><command>gdm</command></term>
<listitem>
<para>is a wrapper script to execute the
<application>GDM</application> binary, the configurable
<application>GNOME</application> based login prompt.</para>
<indexterm zone="gdm gdm-prog">
<primary sortas="b-gdm">gdm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-binary">
<term><command>gdm-binary</command></term>
<listitem>
<para>is the <application>GNOME</application> based login prompt.</para>
<indexterm zone="gdm gdm-binary">
<primary sortas="b-gdm-binary">gdm-binary</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-restart">
<term><command>gdm-restart</command></term>
<listitem>
<para>sends the HUP signal to the <application>GDM</application>
daemon so that it restarts. It's used after the config file
is edited</para>
<indexterm zone="gdm gdm-restart">
<primary sortas="b-gdm-restart">gdm-restart</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-safe-restart">
<term><command>gdm-safe-restart</command></term>
<listitem>
<para>sends the USR1 signal to the <application>GDM</application>
daemon so that it restarts. It's used after the config file
is edited.</para>
<indexterm zone="gdm gdm-safe-restart">
<primary sortas="b-gdm-safe-restart">gdm-safe-restart</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gdm-stop">
<term><command>gdm-stop</command></term>
<listitem>
<para>sends the TERM signal to the <application>GDM</application>
daemon so that it stops. It's used after the config file is
edited.</para>
<indexterm zone="gdm gdm-stop">
<primary sortas="b-gdm-stop">gdm-stop</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>