source: general/sysutils/dbus.xml@ 0b83a69

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 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 0b83a69 was 0b83a69, checked in by Krejzi <krejzi@…>, 12 years ago

D-Bus 1.6.2 and libquicktime 1.2.4

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

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