source: general/sysutils/dbus.xml@ a55a187

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since a55a187 was df9fb20, checked in by Fernando de Oliveira <fernando@…>, 10 years ago

More tags and other fixes by Armin. Thanks.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@12743 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 18.3 KB
Line 
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 dbus-download-http "http://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.gz">
8 <!ENTITY dbus-download-ftp " ">
9 <!ENTITY dbus-md5sum "059fbe84e39fc99c67a14f15b1f39dff">
10 <!ENTITY dbus-size "1.8 MB">
11 <!ENTITY dbus-buildsize "86 MB (additional 26 MB installed)">
12 <!ENTITY dbus-time "0.35 SBU (additional 1.3 SBU for tests)">
13]>
14
15<sect1 id="dbus" xreflabel="D-Bus-&dbus-version;">
16 <?dbhtml filename="dbus.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>D-Bus-&dbus-version;</title>
24
25 <indexterm zone="dbus">
26 <primary sortas="a-D-Bus">D-Bus</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to D-Bus</title>
31
32 <para>
33 <application>D-Bus</application> is a message bus system, a simple
34 way for applications to talk to one another.
35 <application>D-Bus</application> supplies both a system daemon (for events
36 such as <quote>new hardware device added</quote> or <quote>printer queue
37 changed</quote>) and a per-user-login-session daemon (for general IPC needs
38 among user applications). Also, the message bus is built on top of a
39 general one-to-one message passing framework, which can be used by any two
40 applications to communicate directly (without going through the message bus
41 daemon).
42 </para>
43
44 &lfs75_checked;
45
46 <bridgehead renderas="sect3">Package Information</bridgehead>
47 <itemizedlist spacing="compact">
48 <listitem>
49 <para>
50 Download (HTTP): <ulink url="&dbus-download-http;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download (FTP): <ulink url="&dbus-download-ftp;"/>
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download MD5 sum: &dbus-md5sum;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Download size: &dbus-size;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated disk space required: &dbus-buildsize;
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Estimated build time: &dbus-time;
76 </para>
77 </listitem>
78 </itemizedlist>
79
80 <bridgehead renderas="sect3">D-Bus Dependencies</bridgehead>
81
82 <bridgehead renderas="sect4">Required</bridgehead>
83 <para role="required">
84 <xref linkend="expat"/>
85 </para>
86
87 <bridgehead renderas="sect4">Recommended</bridgehead>
88 <para role="recommended">
89 <xref linkend="xorg7-lib"/>
90 (for <command>dbus-launch</command> program)
91 </para>
92
93 <bridgehead renderas="sect4">Optional</bridgehead>
94 <para role="optional">
95 For the tests:
96 <xref linkend="dbus-glib"/>,
97 <xref linkend="dbus-python"/>, and
98 <xref linkend="pygobject2"/>;
99 for the API documentation:
100 <xref linkend="doxygen"/>;
101 for man pages and XML/HTML documentation:
102 <xref linkend="xmlto"/>
103 </para>
104
105 <para condition="html" role="usernotes">User Notes:
106 <ulink url="&blfs-wiki;/dbus"/>
107 </para>
108 </sect2>
109
110 <sect2 role="installation">
111 <title>Installation of D-Bus</title>
112
113 <para>
114 As the <systemitem class="username">root</systemitem> user, create a
115 system user and group to handle the system message bus activity:
116 </para>
117
118<screen role="root"><userinput>groupadd -g 18 messagebus &amp;&amp;
119useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
120 -u 18 -g messagebus -s /bin/false messagebus</userinput></screen>
121
122 <para>
123 Install <application>D-Bus</application> by running the following
124 commands (you may wish to review the output from
125 <command>./configure --help</command> first and add any desired parameters
126 to the <command>configure</command> command shown below):
127 </para>
128
129<screen><userinput>./configure --prefix=/usr \
130 --sysconfdir=/etc \
131 --localstatedir=/var \
132 --with-console-auth-dir=/run/console/ \
133 --without-systemdsystemunitdir \
134 --disable-systemd \
135 --disable-static &amp;&amp;
136make</userinput></screen>
137
138 <para>
139 See below for test instructions.
140 </para>
141
142 <para>
143 Now, as the <systemitem class="username">root</systemitem> user:
144 </para>
145
146<screen role="root"><userinput>make install &amp;&amp;
147mv -v /usr/share/doc/dbus /usr/share/doc/dbus-&dbus-version;</userinput></screen>
148
149 <para>
150 If you are still building your system in chroot or you did not start the
151 daemon yet, but you want to compile some packages that require
152 <application>D-Bus</application>, generate
153 <application>D-Bus</application> UUID to avoid warnings when compiling
154 some packages with the following command as the
155 <systemitem class="username">root</systemitem> user:
156 </para>
157
158<screen role="root"><userinput>dbus-uuidgen --ensure</userinput></screen>
159
160 <para>
161 The dbus tests cannot be run until after <xref linkend="dbus-glib"/>
162 has been installed. They must be run as an unprivileged user from a
163 local session. Tests fail through ssh. If you want to run only the unit
164 tests, replace, below, <parameter>--enable-tests</parameter> by
165 <parameter>--enable-embedded-tests</parameter>, otherwise,
166 <xref linkend="dbus-python"/> has to be installed, before.
167 The tests require passing additional parameters to
168 <command>configure</command> and exposing additional functionality in
169 the binaries. These interfaces are not intended to be used in a
170 production build of <application>D-Bus</application>. If you would
171 like to run the tests, issue the following commands:
172 </para>
173
174<screen><userinput>make distclean &amp;&amp;
175./configure --enable-tests --enable-asserts &amp;&amp;
176make &amp;&amp;
177make check &amp;&amp;
178make distclean</userinput></screen>
179
180 <para>
181 If <command>run-test.sh</command> fails, it can be disabled with the
182 following sed, before running the commands for the tests:
183 </para>
184
185<screen><userinput>sed -i -e 's:run-test.sh:$(NULL):g' test/name-test/Makefile.in</userinput></screen>
186
187 <para>
188 Note there has been a report that the tests may fail if running
189 inside a Midnight Commander shell.
190 You may get out-of-memory error messages when running the tests.
191 These are normal and can be safely ignored.
192 </para>
193
194 </sect2>
195
196 <sect2 role="commands">
197 <title>Command Explanations</title>
198
199 <para>
200 <parameter>--with-console-auth-dir=/run/console/</parameter>: This
201 parameter specifies location of the
202 <application>ConsoleKit</application> auth dir.
203 </para>
204
205 <para>
206 <parameter>--without-systemdsystemunitdir</parameter>: This switch
207 prevents installation of systemd unit files.
208 </para>
209
210 <para>
211 <parameter>--disable-systemd</parameter>: This switch disables systemd
212 support in <application>D-Bus</application>
213 </para>
214
215 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
216 href="../../xincludes/static-libraries.xml"/>
217
218 <para>
219 <parameter>--enable-tests</parameter>: Build extra parts of the code to
220 support all tests. Configure will end with a NOTE warning about increased
221 size of libraries and decreased security.
222 </para>
223
224 <para>
225 <parameter>--enable-embedded-tests</parameter>: Build extra parts of the
226 code to support only unit tests. Configure will end with a NOTE warning
227 about increased size of libraries and decreased security.
228 </para>
229
230 <para>
231 <parameter>--enable-asserts</parameter>: Enable debugging code to run
232 assertions for statements normally assumed to be true. This prevents a
233 warning that '<parameter>--enable-tests</parameter>' on its own is only
234 useful for profiling and might not give true results for all tests, but
235 adds its own NOTE that this should not be used in a production build.
236 </para>
237
238 </sect2>
239
240 <sect2 role="configuration">
241 <title>Configuring dbus</title>
242
243 <sect3 id="dbus-config">
244 <title>Config Files</title>
245
246 <para>
247 <filename>/etc/dbus-1/session.conf</filename>,
248 <filename>/etc/dbus-1/system.conf</filename> and
249 <filename>/etc/dbus-1/system.d/*</filename>
250 </para>
251
252 <indexterm zone="dbus dbus-config">
253 <primary sortas="e-etc-dbus-1-session.conf">/etc/dbus-1/session.conf</primary>
254 </indexterm>
255
256 <indexterm zone="dbus dbus-config">
257 <primary sortas="e-etc-dbus-1/system.conf">/etc/dbus-1/system.conf</primary>
258 </indexterm>
259
260 <indexterm zone="dbus dbus-config">
261 <primary sortas="e-etc-dbus-1-system.d-star">/etc/dbus-1/system.d/*</primary>
262 </indexterm>
263
264 </sect3>
265
266 <sect3 id="dbus-session-config" xreflabel="D-Bus custom services directory">
267 <title>Configuration Information</title>
268
269 <para>
270 The configuration files listed above should probably not be
271 modified. If changes are required, you should create
272 <filename>/etc/dbus-1/session-local.conf</filename> and/or
273 <filename>/etc/dbus-1/system-local.conf</filename> and make any
274 desired changes to these files.
275 </para>
276
277 <para>
278 If any packages install a
279 <application>D-Bus</application> <filename>.service</filename>
280 file outside of the standard <filename
281 class="directory">/usr/share/dbus-1/services</filename> directory,
282 that directory should be added to the local session configuration.
283 For instance, <filename
284 class="directory">/usr/local/share/dbus-1/services</filename> can
285 be added by performing the following commands as the
286 <systemitem class="username">root</systemitem> user:
287 </para>
288
289<screen role="root"><userinput>cat &gt; /etc/dbus-1/session-local.conf &lt;&lt; "EOF"
290<literal>&lt;!DOCTYPE busconfig PUBLIC
291 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
292 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
293&lt;busconfig&gt;
294
295 &lt;!-- Search for .service files in /usr/local --&gt;
296 &lt;servicedir&gt;/usr/local/share/dbus-1/services&lt;/servicedir&gt;
297
298&lt;/busconfig&gt;</literal>
299EOF</userinput></screen>
300
301 </sect3>
302
303 <sect3 id="dbus-init">
304 <title>Boot Script</title>
305
306 <para>
307 To automatically start <command>dbus-daemon</command> when the
308 system is rebooted, install the
309 <filename>/etc/rc.d/init.d/dbus</filename> bootscript from the
310 <xref linkend="bootscripts"/> package.
311 </para>
312
313 <indexterm zone="dbus dbus-init">
314 <primary sortas="f-dbus">dbus</primary>
315 </indexterm>
316
317<screen role="root"><userinput>make install-dbus</userinput></screen>
318
319 <para>
320 Note that this boot script only starts the system-wide
321 <application>D-Bus</application> daemon. Each user requiring access to
322 <application>D-Bus</application> services will also need to run a
323 session daemon as well. There are many methods you can use to start a
324 session daemon using the <command>dbus-launch</command> command. Review
325 the <command>dbus-launch</command> man page for details about the
326 available parameters and options. Here are some suggestions and
327 examples:
328 </para>
329
330 <itemizedlist spacing="compact">
331 <listitem>
332 <para>
333 Add <command>dbus-launch</command> to the line in the
334 <filename>~/.xinitrc</filename> file that starts your graphical
335 desktop environment.
336 </para>
337 </listitem>
338 <listitem>
339 <para>
340 If you use <command>xdm</command> or some other display manager
341 that calls the <filename>~/.xsession</filename> file, you can add
342 <command>dbus-launch</command> to the line in your
343 <filename>~/.xsession</filename> file that starts your graphical
344 desktop environment. The syntax would be similar to the example in
345 the <filename>~/.xinitrc</filename> file.
346 </para>
347 </listitem>
348 <listitem>
349 <para>
350 The examples shown previously use
351 <command>dbus-launch</command> to specify a program to be run. This
352 has the benefit (when also using the
353 <parameter>--exit-with-session</parameter> parameter) of stopping the
354 session daemon when the specified program is stopped. You can also
355 start the session daemon in your system or personal startup scripts
356 by adding the following lines:
357 </para>
358
359<screen><userinput><literal># Start the D-Bus session daemon
360eval `dbus-launch`
361export DBUS_SESSION_BUS_ADDRESS</literal></userinput></screen>
362
363 <para>
364 This method will not stop the session daemon when you exit
365 your shell, therefore you should add the following line to your
366 <filename>~/.bash_logout</filename> file:
367 </para>
368
369<screen><userinput><literal># Kill the D-Bus session daemon
370kill $DBUS_SESSION_BUS_PID</literal></userinput></screen>
371 </listitem>
372
373 <listitem>
374 <para>
375 A hint has been written that provides ways to start scripts
376 using the KDM session manager of KDE. The concepts in this hint could
377 possibly be used with other session managers as well. The hint is
378 located at <ulink
379 url="&hints-root;/downloads/files/execute-session-scripts-using-kdm.txt"/>.
380 </para>
381 </listitem>
382
383 </itemizedlist>
384
385 </sect3>
386
387 </sect2>
388
389 <sect2 role="content">
390 <title>Contents</title>
391
392 <segmentedlist>
393 <segtitle>Installed Programs</segtitle>
394 <segtitle>Installed Library</segtitle>
395 <segtitle>Installed Directories</segtitle>
396
397 <seglistitem>
398 <seg>
399 dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor,
400 dbus-run-session, dbus-send and dbus-uuidgen
401 </seg>
402 <seg>
403 libdbus-1.so
404 </seg>
405 <seg>
406 /etc/dbus-1,
407 /usr/include/dbus-1.0,
408 /usr/lib/dbus-1.0,
409 /usr/share/dbus-1,
410 /usr/share/doc/dbus-&dbus-version;,
411 /var/lib/dbus and
412 /var/run/dbus
413 </seg>
414 </seglistitem>
415 </segmentedlist>
416
417 <variablelist>
418 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
419 <?dbfo list-presentation="list"?>
420 <?dbhtml list-presentation="table"?>
421
422 <varlistentry id="dbus-cleanup-sockets">
423 <term><command>dbus-cleanup-sockets</command></term>
424 <listitem>
425 <para>
426 is used to clean up leftover sockets in a directory.
427 </para>
428 <indexterm zone="dbus dbus-cleanup-sockets">
429 <primary sortas="b-dbus-cleanup-sockets">dbus-cleanup-sockets</primary>
430 </indexterm>
431 </listitem>
432 </varlistentry>
433
434 <varlistentry id="dbus-daemon">
435 <term><command>dbus-daemon</command></term>
436 <listitem>
437 <para>
438 is the <application>D-Bus</application> message bus daemon.
439 </para>
440 <indexterm zone="dbus dbus-daemon">
441 <primary sortas="b-dbus-daemon">dbus-daemon</primary>
442 </indexterm>
443 </listitem>
444 </varlistentry>
445
446 <varlistentry id="dbus-launch">
447 <term><command>dbus-launch</command></term>
448 <listitem>
449 <para>
450 is used to start <command>dbus-daemon</command> from a shell
451 script. It would normally be called from a user's login
452 scripts.
453 </para>
454 <indexterm zone="dbus dbus-launch">
455 <primary sortas="b-dbus-launch">dbus-launch</primary>
456 </indexterm>
457 </listitem>
458 </varlistentry>
459
460 <varlistentry id="dbus-monitor">
461 <term><command>dbus-monitor</command></term>
462 <listitem>
463 <para>
464 is used to monitor messages going through a
465 <application>D-Bus</application> message bus.
466 </para>
467 <indexterm zone="dbus dbus-monitor">
468 <primary sortas="b-dbus-monitor">dbus-monitor</primary>
469 </indexterm>
470 </listitem>
471 </varlistentry>
472
473 <varlistentry id="dbus-run-session">
474 <term><command>dbus-run-session</command></term>
475 <listitem>
476 <para>
477 start a process as a new <application>D-Bus</application> session.
478 </para>
479 <indexterm zone="dbus dbus-run-session">
480 <primary sortas="b-dbus-run-session">dbus-run-session</primary>
481 </indexterm>
482 </listitem>
483 </varlistentry>
484
485 <varlistentry id="dbus-send">
486 <term><command>dbus-send</command></term>
487 <listitem>
488 <para>
489 is used to send a message to a <application>D-Bus</application>
490 message bus.
491 </para>
492 <indexterm zone="dbus dbus-send">
493 <primary sortas="b-dbus-send">dbus-send</primary>
494 </indexterm>
495 </listitem>
496 </varlistentry>
497
498 <varlistentry id="dbus-uuidgen">
499 <term><command>dbus-uuidgen</command></term>
500 <listitem>
501 <para>
502 is used to generate a universally unique ID.
503 </para>
504 <indexterm zone="dbus dbus-uuidgen">
505 <primary sortas="b-dbus-uuidgen">dbus-uuidgen</primary>
506 </indexterm>
507 </listitem>
508 </varlistentry>
509
510 <varlistentry id="libdbus-1">
511 <term><filename class="libraryfile">libdbus-1.so</filename></term>
512 <listitem>
513 <para>
514 contains the API functions used by the
515 <application>D-Bus</application> message daemon.
516 <application>D-Bus</application> is first a library that provides
517 one-to-one communication between any two applications;
518 <command>dbus-daemon</command> is an application that uses this
519 library to implement a message bus daemon.
520 </para>
521 <indexterm zone="dbus libdbus-1">
522 <primary sortas="c-libdbus-1">libdbus-1.so</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 </variablelist>
528
529 </sect2>
530
531</sect1>
532
Note: See TracBrowser for help on using the repository browser.