source: general/sysutils/elogind.xml@ f54c9942

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since f54c9942 was 992c9e7, checked in by Pierre Labastie <pierre.labastie@…>, 16 months ago

Fix elogind dependencies

  • dbus is not needed for building (and strictly speaking, it is

not needed for running, but strongly recommended)

  • polkit was said to be runtime but role="runtime" was missing
  • only valgrind is needed for tests
  • there is no trace of gobject-introspection in the deps.
  • Property mode set to 100644
File size: 12.3 KB
RevLine 
[ff3264f]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY elogind-download-http "https://github.com/elogind/elogind/archive/v&elogind-version;/elogind-&elogind-version;.tar.gz">
8 <!ENTITY elogind-download-ftp " ">
[32d76f00]9 <!ENTITY elogind-md5sum "32ab2201281f14738d9c045f3669c14d">
[645dfa3]10 <!ENTITY elogind-size "1.5 MB">
[b7e2ce4]11 <!ENTITY elogind-buildsize "41 MB (with tests)">
[32d76f00]12 <!ENTITY elogind-time "0.2 SBU (with parallelism=4)">
[ff3264f]13]>
14
15<sect1 id="elogind" revision="sysv" xreflabel="elogind-&elogind-version;">
16 <?dbhtml filename="elogind.html"?>
17
18
19 <title>elogind-&elogind-version;</title>
20
21 <indexterm zone="elogind">
22 <primary sortas="a-elogind">elogind</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to elogind</title>
27
28 <para>
29 <application>elogind</application> is the
[76a6005]30 <application>systemd</application> project's "logind", extracted to
[ff3264f]31 be a standalone daemon. It integrates with <xref linkend="linux-pam"/>
[76a6005]32 to track all the users logged in to a system, and whether they
[ff3264f]33 are logged in graphically, on the console, or remotely.
34 <application>Elogind</application> exposes this information via the
35 standard org.freedesktop.login1 <application>D-Bus</application>
[76a6005]36 interface, and also through the file system using systemd's standard
[ff3264f]37 <filename class="directory">/run/systemd</filename> layout.
38 </para>
39
[dc1a45e]40 &lfs113_checked;
[ff3264f]41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&elogind-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&elogind-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &elogind-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &elogind-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &elogind-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &elogind-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">elogind Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Recommended</bridgehead>
79 <para role="recommended">
[992c9e7]80 <xref role="runtime" linkend="dbus"/> (runtime),
[779b3223]81 <xref linkend="linux-pam"/> (required for Xorg),
[992c9e7]82 <xref role="runtime" linkend="polkit"/> (runtime),
[ff3264f]83 <xref linkend="DocBook"/>,
84 <xref linkend="docbook-xsl"/>, and
[8558044]85 <xref linkend="libxslt"/> (all three to build the man pages)
[ff3264f]86 </para>
87
88 <bridgehead renderas="sect4">Optional</bridgehead>
89 <para role="optional">
90 <xref linkend="lxml"/>,
91 <xref linkend="zsh"/>,
[992c9e7]92 <xref linkend="valgrind"/> (needed for tests),
[ff3264f]93 <ulink url="https://github.com/linux-audit/audit-userspace">
94 audit-userspace</ulink>,
95 <ulink url="https://github.com/scop/bash-completion">
96 bash-completion</ulink>,
97 <ulink url="https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kexec/">
98 kexec</ulink>, and
[6e2eb5cf]99 <ulink url="https://selinuxproject.org/page/Main_Page">
[ff3264f]100 SELinux</ulink>
101 </para>
102
103 <para condition="html" role="usernotes">User Notes:
104 <ulink url="&blfs-wiki;/elogind"/>
105 </para>
106 </sect2>
107
[398b4239]108 <sect2 role="kernel" id="elogind-kernel">
109 <title>Kernel Configuration</title>
110
111 <para>
112 Enable the following options in the kernel configuration and recompile the
113 kernel if necessary:
114 </para>
115
116<!-- Spaces are significant in <screen> sections -->
117<screen><literal>General setup ---&gt;
118 [*] Control Group support [CONFIG_CGROUPS]
119File systems ---&gt;
[6735113]120 [*] Inotify support for userspace [CONFIG_INOTIFY_USER]
121 Pseudo filesystems ---&gt;
122 [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]</literal></screen>
[398b4239]123
[cce4984]124 <para>
125 In addition, some tests need the userspace cryptographic kernel API, which
126 is enabled with:
127 </para>
128
[c667e1e]129<screen><literal>-*- Cryptographic API ---&gt; [CONFIG_CRYPTO]
130 Crypto core or helper --->
131 &lt;M/*&gt; Userspace cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
132 Userspace interface --->
133 &lt;M/*&gt; Hash algorithms [CONFIG_CRYPTO_USER_API_HASH]</literal></screen>
[cce4984]134
[398b4239]135 <indexterm zone="elogind elogind-kernel">
136 <primary sortas="d-elogind">elogind</primary>
137 </indexterm>
138 </sect2>
139
[ff3264f]140 <sect2 role="installation">
141 <title>Installation of elogind</title>
[7a1065c]142
[ff3264f]143 <para>
144 Install <application>elogind</application> by running the following
145 commands:
146 </para>
147
[65d85668]148<screen><userinput>sed -i '/Disable polkit/,+8 d' meson.build &amp;&amp;
149
[27e5cd4c]150sed '/request_name/i\
151r = sd_bus_set_exit_on_disconnect(m->bus, true);\
152if (r &lt; 0)\
153 return log_error_errno(r, "Failed to set exit on disconnect: %m");' \
154 -i src/login/logind.c &amp;&amp;
155
[65d85668]156mkdir build &amp;&amp;
[488cea3]157cd build &amp;&amp;
[ff3264f]158
[91318eb]159meson setup .. \
160 --prefix=/usr \
161 --buildtype=release \
162 -Dman=auto \
163 -Dcgroup-controller=elogind \
164 -Ddbuspolicydir=/etc/dbus-1/system.d &amp;&amp;
[ff3264f]165ninja</userinput></screen>
166
167 <para>
[cce4984]168 To test the results, issue: <command>ninja test</command>. A few tests
169 are skipped if not run with <systemitem class="username">root</systemitem>
170 privileges.
[ff3264f]171 </para>
172
173 <para>
174 Now, as the <systemitem class="username">root</systemitem> user:
175 </para>
176
[1ede364c]177<screen role="root"><userinput>ninja install &amp;&amp;
[ff3264f]178ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &amp;&amp;
179ln -sfvn elogind /usr/include/systemd</userinput></screen>
180
181 </sect2>
182
183 <sect2 role="commands">
184 <title>Command Explanations</title>
185
[65d85668]186 <para>
187 <command>sed ... meson.build</command>: This change allows the
188 package to be built without polkit being installed (it is still a
[8558044]189 runtime dependency) but able to use polkit after that package is
[65d85668]190 installed.
191 </para>
192
[27e5cd4c]193 <para>
194 <command>sed ... src/login/logind.c</command>: This change allows the
195 elogind daemon to exit when it is disconnected from dbus (for example
196 when dbus is killed).
197 </para>
198
[ff3264f]199 <para>
200 <parameter>-Dcgroup-controller=elogind</parameter>: This switch ensures
201 that <application>elogind</application> is selected as the cgroup
202 controller, even if booted with another running cgroup controller.
203 </para>
204
205 <para>
206 <parameter>-Ddbuspolicydir=/etc/dbus-1/system.d</parameter>: This switch
207 sets the location of the <application>D-Bus</application> policy
208 directory.
209 </para>
[adb90981]210
[cce4984]211 <para>
212 <parameter>-Dman=auto</parameter>: The default value of this switch is
213 <emphasis>false</emphasis>. Setting it to <emphasis>auto</emphasis>
214 allows building and installing the man pages if the recommended
215 dependencies are installed.
[adb90981]216 </para>
[ff3264f]217
[6545b53f]218 <para>
[76a6005]219 <option>-Ddefault-kill-user-processes=false</option>: Determines whether
[6545b53f]220 the processes of a user should be killed when the user logs out. The
221 default is <emphasis>true</emphasis>, but this defeats the traditional
222 use of <command>screen</command> or <command>tmux</command>. This can
223 also be changed in the configuration file (see below).
224 </para>
225
[ff3264f]226 <para>
227 <command>ln -s ...</command>: These commands install symlinks so that
[76a6005]228 software packages can find the systemd-compatible library and headers.
[ff3264f]229 </para>
230
231 </sect2>
232
233 <sect2 role="configuration">
234 <title>Configuring elogind</title>
235
[6545b53f]236 <sect3 id="elogind-config">
237 <title>Config File</title>
238 <para>
239 <filename>/etc/elogind/logind.conf</filename>
240 </para>
241
242 <indexterm zone="elogind elogind-config">
243 <primary
244 sortas="e-etc-elogind-logind.conf">/etc/elogind/logind.conf</primary>
245 </indexterm>
246 </sect3>
247
248 <sect3><title>Configuration Information</title>
249
250 <para>
251 The installed file <filename>/etc/elogind/logind.conf</filename>
252 contains all the possible options with their defaults, commented
[76a6005]253 out. You may wish to disable automatically killing user processes when the user logs
[6545b53f]254 out, by running, as the <systemitem class="username">root</systemitem>
255 user:
256 </para>
257
258<screen role="root"><userinput>sed -e '/\[Login\]/a KillUserProcesses=no' \
259 -i /etc/elogind/logind.conf</userinput></screen>
260
261 <para>
262 Each user will need to register a user session using
263 <application>Linux-PAM</application> at login. The
264 <filename>/etc/pam.d/system-session</filename> file needs to
[76a6005]265 be modified and a new file must be created in order for
[6545b53f]266 <command>elogind</command> to work correctly. Run the following
267 commands as the <systemitem class="username">root</systemitem> user:
268 </para>
[ff3264f]269
270<screen role="root"><userinput>cat &gt;&gt; /etc/pam.d/system-session &lt;&lt; "EOF" &amp;&amp;
271<literal># Begin elogind addition
[8558044]272
[ff3264f]273session required pam_loginuid.so
274session optional pam_elogind.so
275
276# End elogind addition</literal>
277EOF
278cat &gt; /etc/pam.d/elogind-user &lt;&lt; "EOF"
279<literal># Begin /etc/pam.d/elogind-user
280
281account required pam_access.so
282account include system-account
283
284session required pam_env.so
285session required pam_limits.so
286session required pam_unix.so
287session required pam_loginuid.so
288session optional pam_keyinit.so force revoke
289session optional pam_elogind.so
290
291auth required pam_deny.so
292password required pam_deny.so
293
294# End /etc/pam.d/elogind-user</literal>
295EOF</userinput></screen>
296
[6545b53f]297 </sect3>
[ff3264f]298 </sect2>
299
300 <sect2 role="content" revision="sysv">
301 <title>Contents</title>
302
303 <segmentedlist>
304 <segtitle>Installed Programs</segtitle>
305 <segtitle>Installed Library</segtitle>
306 <segtitle>Installed Directories</segtitle>
307
308 <seglistitem>
309 <seg>
310 busctl,
311 elogind-inhibit, and
312 loginctl
313 </seg>
314 <seg>
315 libelogind.so
316 </seg>
317 <seg>
[1ede364c]318 /lib/elogind,
[ff3264f]319 /etc/elogind,
320 /usr/include/elogind, and
321 /usr/share/doc/elogind-&elogind-version;
322 </seg>
323 </seglistitem>
324 </segmentedlist>
325
326 <variablelist>
327 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
328 <?dbfo list-presentation="list"?>
329 <?dbhtml list-presentation="table"?>
330
331 <varlistentry id="busctl">
332 <term><command>busctl</command></term>
333 <listitem>
334 <para>
[4c24eb0a]335 is used to introspect and monitor the D-Bus bus
[ff3264f]336 </para>
337 <indexterm zone="elogind busctl">
338 <primary sortas="b-busctl">busctl</primary>
339 </indexterm>
340 </listitem>
341 </varlistentry>
342
343 <varlistentry id="elogind-inhibit">
344 <term><command>elogind-inhibit</command></term>
345 <listitem>
346 <para>
347 is used to execute a program with a shutdown, sleep or idle
[4c24eb0a]348 inhibitor lock taken
[ff3264f]349 </para>
350 <indexterm zone="elogind elogind-inhibit">
351 <primary sortas="b-elogind-inhibit">elogind-inhibit</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="loginctl">
357 <term><command>loginctl</command></term>
358 <listitem>
359 <para>
360 is used to introspect and control the state of the elogind Login
[4c24eb0a]361 Manager
[ff3264f]362 </para>
363 <indexterm zone="elogind loginctl">
364 <primary sortas="b-loginctl">loginctl</primary>
365 </indexterm>
366 </listitem>
367 </varlistentry>
368
369 <varlistentry id="libelogind">
370 <term><filename class="libraryfile">libelogind.so</filename></term>
371 <listitem>
372 <para>
[4c24eb0a]373 is the main elogind utility library
[ff3264f]374 </para>
375 <indexterm zone="elogind libelogind">
376 <primary sortas="c-libelogind">libelogind.so</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 </variablelist>
382
383 </sect2>
384
[4c24eb0a]385</sect1>
Note: See TracBrowser for help on using the repository browser.