glfs/x/dm/lightdm.xml
Pierre Labastie 9a6f0ab378 lightdm (sysv): make "telinit" "nodump"
otherwise, jhalfs switch runlevels, lightdm starts, and if the
libinput or event xorg driver is not built, you need to reboot.
Also remove some obsolete instructions about the inittab,
since they are now performed by "make install-lightdm"
2022-03-24 08:10:33 +01:00

455 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;
<!-- lightdm -->
<!ENTITY lightdm-download-http "https://github.com/CanonicalLtd/lightdm/releases/download/&lightdm-version;/lightdm-&lightdm-version;.tar.xz">
<!ENTITY lightdm-download-ftp " ">
<!ENTITY lightdm-md5sum "c566ea595f2b81e68684be9f8dbcbb42">
<!ENTITY lightdm-size "500 KB">
<!ENTITY lightdm-buildsize "21 MB">
<!ENTITY lightdm-time "0.2 SBU ">
<!-- lightdm-gtk-greeter -->
<!ENTITY lightdm-gtk-greeter-download-http "https://github.com/Xubuntu/lightdm-gtk-greeter/releases/download/lightdm-gtk-greeter-&lightdm-gtk-greeter-version;/lightdm-gtk-greeter-&lightdm-gtk-greeter-version;.tar.gz">
<!ENTITY lightdm-gtk-greeter-download-ftp " ">
<!ENTITY lightdm-gtk-greeter-md5sum "373c73c67367df511eb544e09a2da281">
<!ENTITY lightdm-gtk-greeter-size "569.7 KB">
<!ENTITY lightdm-gtk-greeter-buildsize "5.5 MB">
<!ENTITY lightdm-gtk-greeter-time "less than 0.1 SBU ">
]>
<sect1 id="lightdm" xreflabel="lightdm-&lightdm-version;">
<?dbhtml filename="lightdm.html"?>
<sect1info>
<date>$Date$</date>
</sect1info>
<title>lightdm-&lightdm-version;</title>
<indexterm zone="lightdm">
<primary sortas="a-lightdm">lightdm</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Lightdm</title>
<para>
The <application>lightdm</application> package contains a lightweight
display manager based upon GTK.
</para>
&lfs111_checked;
<bridgehead renderas="sect3">Lightdm Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&lightdm-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&lightdm-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &lightdm-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &lightdm-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &lightdm-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &lightdm-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional download</bridgehead>
<note>
<para>
The greeter is a program to present a graphical login screen. There
are several alternative greeters, but the gtk+ package is the reference
implementation. For a list of other greeters, see <ulink
url="https://en.wikipedia.org/wiki/LightDM"/>.
</para>
</note>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&lightdm-gtk-greeter-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&lightdm-gtk-greeter-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &lightdm-gtk-greeter-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &lightdm-gtk-greeter-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &lightdm-gtk-greeter-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &lightdm-gtk-greeter-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Lightdm Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="exo"/> (for the greeter),
<!-- required by exo <xref linkend="gtk3"/>, -->
<xref linkend="libgcrypt"/>,
<xref linkend="itstool"/>, and
<xref linkend="linux-pam"/>
<!-- Neither lightdm-1.30.0 nor lightdm-gtk-greeter-2.0.8
mention pcre in their configure scripts
<xref linkend="pcre"/>-->
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="gobject-introspection"/>,
<xref linkend="libxklavier"/>, and
<xref linkend="vala"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref role="runtime" linkend="accountsservice"/> (run time),
<xref linkend="at-spi2-core"/>,
<xref linkend="gtk-doc"/>,
<xref linkend="qt5"/>,
<ulink url="https://launchpad.net/ido">libido</ulink>, and
<ulink url="https://launchpad.net/libindicator">libindicator</ulink>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/lightdm"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Lightdm</title>
<para>
First, create a dedicated user and group to take
control of the <command>lightdm</command> daemon after it is
started. Issue the following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>groupadd -g 65 lightdm &amp;&amp;
useradd -c "Lightdm Daemon" \
-d /var/lib/lightdm \
-u 65 -g lightdm \
-s /bin/false lightdm</userinput></screen>
<para revision="sysv">
Then change the <application>Linux-PAM</application> configuration files
so that <application>elogind</application> is used:
</para>
<screen revision="sysv"><userinput>sed -i s/systemd/elogind/ data/pam/*</userinput></screen>
<para>
Install <application>lightdm</application> by running the following
commands:
</para>
<screen><userinput>./configure \
--prefix=/usr \
--libexecdir=/usr/lib/lightdm \
--localstatedir=/var \
--sbindir=/usr/bin \
--sysconfdir=/etc \
--disable-static \
--disable-tests \
--with-greeter-user=lightdm \
--with-greeter-session=lightdm-gtk-greeter \
--docdir=/usr/share/doc/lightdm-&lightdm-version; &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;
cp tests/src/lightdm-session /usr/bin &amp;&amp;
sed -i '1 s/sh/bash --login/' /usr/bin/lightdm-session &amp;&amp;
rm -rf /etc/init &amp;&amp;
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm &amp;&amp;
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm-data &amp;&amp;
install -v -dm755 -o lightdm -g lightdm /var/cache/lightdm &amp;&amp;
install -v -dm770 -o lightdm -g lightdm /var/log/lightdm</userinput></screen>
<para>
Now build the greeter:
</para>
<screen><userinput>tar -xf ../lightdm-gtk-greeter-&lightdm-gtk-greeter-version;.tar.gz &amp;&amp;
cd lightdm-gtk-greeter-&lightdm-gtk-greeter-version; &amp;&amp;
./configure \
--prefix=/usr \
--libexecdir=/usr/lib/lightdm \
--sbindir=/usr/bin \
--sysconfdir=/etc \
--with-libxklavier \
--enable-kill-on-sigterm \
--disable-libido \
--disable-libindicator \
--disable-static \
--disable-maintainer-mode \
--docdir=/usr/share/doc/lightdm-gtk-greeter-&lightdm-gtk-greeter-version; &amp;&amp;
make</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<note>
<para>
If you installed Xorg in /opt, you will need to create a symbolic
link so lightdm can find the Xorg server. As the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="nodump"><userinput>ln -sf /opt/xorg/bin/Xorg /usr/bin/X</userinput></screen>
</note>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>sed ... /usr/bin/lightdm-session</command>:
This command ensures that the initial login via the greeter sources
/etc/profile and ~/.bash_profile. Without this, commands that depend on
different environment variables may not work as expected.
</para>
<!--
<para>
<parameter>ITSTOOL=/bin/true</parameter>: although
<xref linkend="itstool"/> is not needed in a normal build,
<command>configure</command> throws an error if it is not found on the
system. This parameter prevents the error.
</para>
<para>
<parameter>HAVE_EXO_CSOURCE=yes</parameter>: although
<command>exo-csource</command> is not needed in a normal build,
<command>configure</command> throws an error if it is not found on the
system. This parameter prevents the error.
</para>
-->
</sect2>
<sect2 role="configuration">
<title>Configuring lightdm</title>
<sect3 id="lightdm-config">
<title>Config Files</title>
<para>
/etc/lightdm/{lightdm,users,keys}.conf
</para>
<indexterm zone="lightdm lightdm-config">
<primary sortas="e-etc-lightdm-lightdm.conf">/etc/lightdm/lightdm.conf</primary>
</indexterm>
<indexterm zone="lightdm lightdm-config">
<primary sortas="e-users.conf">/etc/lightdm/users.conf</primary>
</indexterm>
<indexterm zone="lightdm lightdm-config">
<primary sortas="e-keys.conf">/etc/lightdm/keys.conf</primary>
</indexterm>
<indexterm zone="lightdm lightdm-config">
<primary sortas="e-lightdm-gtk-greeter.conf">
/etc/lightdm/lightdm-gtk-greeter.conf</primary>
</indexterm>
</sect3>
<sect3 id="lightdm-bootscript">
<title><phrase revision="sysv">Boot Script</phrase>
<phrase revision="systemd">Systemd Unit</phrase></title>
<indexterm zone="lightdm lightdm-bootscript">
<primary sortas="f-lightdm">lightdm</primary>
</indexterm>
<para revision="sysv">
To start <command>lightdm</command> automatically when the system is
switched to runlevel 5, install the
<filename>/etc/rc.d/init.d/xdm</filename> script and the
<filename>/etc/sysconfig/xdm</filename> configuration file
included in the <xref linkend="bootscripts"/> package
and adjust <filename>/etc/inittab</filename> by running
as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root" revision="sysv"><userinput>make install-lightdm</userinput></screen>
<para revision="systemd">
Install the <filename>lightdm.service</filename> unit included in
the <xref linkend="systemd-units"/> package:
</para>
<screen role="root" revision="systemd"><userinput>make install-lightdm</userinput></screen>
</sect3>
<sect3 id="lightdm-init" revision="sysv">
<title>Starting lightdm</title>
<para>
The <command>lightdm</command> greeter can be started from the
command line as the <systemitem class="username">root</systemitem>
user:
</para>
<screen role="nodump"><userinput>telinit 5</userinput></screen>
<!-- "make install-lightdm already does this already
<para>
Alternatively the runlevel can be permanently set to 5, starting the
<command>lightdm</command> greeter screen automatically, by modifying
<filename>/etc/inittab</filename>. As the <systemitem
class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cp -v /etc/inittab{,-orig} &amp;&amp;
sed -i '/initdefault/ s/3/5/' /etc/inittab</userinput></screen>
-->
</sect3>
<sect3 id="lightdm-sessions">
<title>Available Sessions</title>
<para>
The greeter offers a list of available sessions,
depending on the Window Managers and Desktop Environments installed. The
list includes sessions which have a corresponding
<filename>.desktop</filename> file installed under
<filename class="directory">/usr/share/xsessions</filename>. Most of the
Window Managers and Desktop Environments automatically provide those
files, but if necessary, you may include a custom one.
</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
dm-tool,
lightdm, and
lightdm-gtk-greeter
</seg>
<seg>
liblightdm-gobject-1.so
</seg>
<seg>
/etc/lightdm,
/etc/apparmor.d,
/usr/lib/lightdm,
/usr/include/lightdm-gobject-1,
/usr/share/help/C/lightdm
/usr/share/gtk-doc/html/lightdm-gobject-1,
/usr/share/doc/lightdm-gtk-greeter-&lightdm-gtk-greeter-version;,
/var/lib/lightdm,
/var/lib/lightdm-data,
/var/cache/lightdm, and
/var/log/lightdm
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="lightdm-prog">
<term><command>lightdm</command></term>
<listitem>
<para>
is a display and login manager
</para>
<indexterm zone="lightdm lightdm-prog">
<primary sortas="b-lightdm">lightdm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lightdm-gtk-greeter">
<term><command>lightdm-gtk-greeter</command></term>
<listitem>
<para>
is an auxiliary process that displays the greeter,
a graphical user interface that performs user
authentication and initiates the selected window manager
or display environment
</para>
<indexterm zone="lightdm lightdm-gtk-greeter">
<primary sortas="b-lightdm-gtk-greeter">lightdm-gtk-greeter</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>