source: general/sysutils/dbus.xml@ 40a4d44

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 40a4d44 was 2fdcd9df, checked in by Krejzi <krejzi@…>, 12 years ago

removed eggdbus and old policykit, dbus 1.4.20, dbus-python 1.0.0

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

  • Property mode set to 100644
File size: 16.6 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 "79eca2f2c1894ac347acce128314428b">
10 <!ENTITY dbus-size "1.8 MB">
11 <!ENTITY dbus-buildsize "100 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><application>D-BUS</application> is a message bus system, a simple
33 way for applications to talk to one another.
34 <application>D-BUS</application> supplies both a system daemon (for events
35 such as <quote>new hardware device added</quote> or <quote>printer queue
36 changed</quote>) and a per-user-login-session daemon (for general IPC needs
37 among user applications). Also, the message bus is built on top of a
38 general one-to-one message passing framework, which can be used by any two
39 applications to communicate directly (without going through the message bus
40 daemon).</para>
41
42 &lfs71_checked;
43
44 <bridgehead renderas="sect3">Package Information</bridgehead>
45 <itemizedlist spacing="compact">
46 <listitem>
47 <para>Download (HTTP): <ulink url="&dbus-download-http;"/></para>
48 </listitem>
49 <listitem>
50 <para>Download (FTP): <ulink url="&dbus-download-ftp;"/></para>
51 </listitem>
52 <listitem>
53 <para>Download MD5 sum: &dbus-md5sum;</para>
54 </listitem>
55 <listitem>
56 <para>Download size: &dbus-size;</para>
57 </listitem>
58 <listitem>
59 <para>Estimated disk space required: &dbus-buildsize;</para>
60 </listitem>
61 <listitem>
62 <para>Estimated build time: &dbus-time;</para>
63 </listitem>
64 </itemizedlist>
65
66 <bridgehead renderas="sect3">D-BUS Dependencies</bridgehead>
67
68 <bridgehead renderas="sect4">Required</bridgehead>
69 <para role="required">
70 <xref linkend="expat"/> (preferred) or
71 <xref linkend="libxml2"/>
72 </para>
73
74 <bridgehead renderas="sect4">Recommended</bridgehead>
75 <para role="recommended"><xref linkend="xorg7-lib"/>
76 (for <command>dbus-launch</command> program)</para>
77
78 <bridgehead renderas="sect4">Optional</bridgehead>
79 <para role="optional">
80 <xref linkend="dbus-glib"/> (to run tests),
81 <xref linkend="python2"/> (to run tests) and
82 <xref linkend="doxygen"/> (to generate the API documentation)
83 </para>
84
85 <para>Note that the <command>configure</command> script will look for
86 <xref linkend="xmlto"/> but it does nothing as the XML/HTML documentation is
87 already shipped in the source tree.</para>
88
89 <para condition="html" role="usernotes">User Notes:
90 <ulink url="&blfs-wiki;/dbus"/></para>
91
92 </sect2>
93
94 <sect2 role="kernel" id='dbus-kernel'>
95 <title>Kernel Configuration</title>
96
97 <para>Ensure the following option is enabled in the kernel configuration
98 and recompile the kernel if necessary:</para>
99
100<screen><literal>General Setup
101 System V IPC</literal></screen>
102
103 <indexterm zone="dbus dbus-kernel">
104 <primary sortas="d-dbus">dbus</primary>
105 </indexterm>
106
107 </sect2>
108
109 <sect2 role="installation">
110 <title>Installation of D-BUS</title>
111
112 <para>As the <systemitem class="username">root</systemitem> user, create a
113 system user and group to handle the system message bus activity:</para>
114
115<screen role="root"><userinput>groupadd -g 18 messagebus &amp;&amp;
116useradd -c "D-BUS Message Daemon User" -d /var/run/dbus \
117 -u 18 -g messagebus -s /bin/false messagebus</userinput></screen>
118
119 <para>Install <application>D-BUS</application> by running the following
120 commands (you may wish to review the output from
121 <command>./configure --help</command> first and add any desired parameters
122 to the <command>configure</command> command shown below):</para>
123
124<screen><userinput>./configure --prefix=/usr \
125 --sysconfdir=/etc \
126 --libexecdir=/usr/lib/dbus-1.0 \
127 --localstatedir=/var &amp;&amp;
128make</userinput></screen>
129
130 <para>See below for test instructions.</para>
131
132 <para>Now, as the <systemitem class="username">root</systemitem>
133 user:</para>
134
135<screen role="root"><userinput>make install &amp;&amp;
136mv -v /usr/share/doc/dbus /usr/share/doc/dbus-&dbus-version;</userinput></screen>
137
138 <para>The dbus tests cannot be run until after <xref linkend="dbus-glib"/>
139 has been installed. The tests require passing additional parameters to
140 <command>configure</command> and exposing additional functionality in the
141 binaries. These interfaces are not intended to be used in a production
142 build of <application>D-BUS</application>. If you would like to run the
143 unit tests, issue the following commands:</para>
144
145<screen><userinput>make distclean &amp;&amp;
146./configure --enable-tests --enable-asserts &amp;&amp;
147make &amp;&amp;
148make check &amp;&amp;
149make distclean</userinput></screen>
150
151 <para>Note there has been a report that the tests may fail if running
152 inside a Midnight Commander shell.
153 You may get out-of-memory error messages when running the tests.
154 These are normal and can be safely ignored.</para>
155
156 </sect2>
157
158 <sect2 role="commands">
159 <title>Command Explanations</title>
160
161 <para><parameter>--libexecdir=/usr/lib/dbus-1.0</parameter>: This will
162 install binaries meant to be only used internally by
163 <application>D-BUS</application>, and the directory
164 <filename class="directory">dbus-1</filename> into
165 <filename class="directory">/usr/lib/dbus-1.0</filename> instead of
166 into <filename class="directory">/usr/libexec</filename>.</para>
167
168 <para><parameter>--localstatedir=/var</parameter>: This parameter causes
169 the daemon PID file, system bus socket and machine uuid file to be
170 created in the <filename class="directory">/var</filename> directory
171 instead of the <filename class="directory">/usr/var</filename>
172 directory.</para>
173
174 <para><parameter>--enable-tests</parameter>: Build extra parts of the code
175 to support testing. Configure will end with a NOTE warning about this.</para>
176
177 <para><parameter>--enable-asserts</parameter>: Enable debugging code to run
178 assertions for statements normally assumed to be true. This prevents a
179 warning that '<parameter>--enable-tests</parameter>' on its own is only useful
180 for profiling and might not give true results for all tests, but adds its own
181 NOTE that this should not be used in a production build.
182 </para>
183
184 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
185 href="../../xincludes/static-libraries.xml"/>
186
187 </sect2>
188
189 <sect2 role="configuration">
190 <title>Configuring dbus</title>
191
192 <sect3 id="dbus-config">
193 <title>Config Files</title>
194 <para><filename>/etc/dbus-1/session.conf</filename>,
195 <filename>/etc/dbus-1/system.conf</filename> and
196 <filename>/etc/dbus-1/system.d/*</filename></para>
197
198 <indexterm zone="dbus dbus-config">
199 <primary sortas="e-etc-dbus-1-session.conf">/etc/dbus-1/session.conf</primary>
200 </indexterm>
201
202 <indexterm zone="dbus dbus-config">
203 <primary sortas="e-etc-dbus-1/system.conf">/etc/dbus-1/system.conf</primary>
204 </indexterm>
205
206 <indexterm zone="dbus dbus-config">
207 <primary sortas="e-etc-dbus-1-system.d-star">/etc/dbus-1/system.d/*</primary>
208 </indexterm>
209
210 </sect3>
211
212 <sect3 id="dbus-session-config" xreflabel="D-Bus custom services directory">
213 <title>Configuration Information</title>
214
215 <para>The configuration files listed above should probably not be
216 modified. If changes are required, you should create
217 <filename>/etc/dbus-1/session-local.conf</filename> and/or
218 <filename>/etc/dbus-1/system-local.conf</filename> and make any
219 desired changes to these files.</para>
220
221 <para>If any packages install a
222 <application>D-Bus</application> <filename>.service</filename>
223 file outside of the standard <filename
224 class="directory">/usr/share/dbus-1/services</filename> directory,
225 that directory should be added to the local session configuration.
226 For instance, <filename
227 class="directory">/usr/local/share/dbus-1/services</filename> can
228 be added by performing the following commands as the
229 <systemitem class="username">root</systemitem> user:</para>
230
231<screen role="root"><userinput>cat &gt; /etc/dbus-1/session-local.conf &lt;&lt; "EOF"
232<literal>&lt;!DOCTYPE busconfig PUBLIC
233 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
234 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
235&lt;busconfig&gt;
236
237 &lt;!-- Search for .service files in /usr/local --&gt;
238 &lt;servicedir&gt;/usr/local/share/dbus-1/services&lt;/servicedir&gt;
239
240&lt;/busconfig&gt;</literal>
241EOF</userinput></screen>
242
243 </sect3>
244
245 <sect3 id="dbus-init">
246 <title>Boot Script</title>
247
248 <para>To automatically start <command>dbus-daemon</command> when the
249 system is rebooted, install the
250 <filename>/etc/rc.d/init.d/dbus</filename> bootscript from the
251 <xref linkend="bootscripts"/> package.</para>
252
253 <indexterm zone="dbus dbus-init">
254 <primary sortas="f-dbus">dbus</primary>
255 </indexterm>
256
257<screen role="root"><userinput>make install-dbus</userinput></screen>
258
259 <para>Note that this boot script only starts the system-wide
260 <application>D-BUS</application> daemon. Each user requiring access to
261 <application>D-BUS</application> services will also need to run a
262 session daemon as well. There are many methods you can use to start a
263 session daemon using the <command>dbus-launch</command> command. Review
264 the <command>dbus-launch</command> man page for details about the
265 available parameters and options. Here are some suggestions and
266 examples:</para>
267
268 <itemizedlist spacing="compact">
269 <listitem>
270 <para>Add <command>dbus-launch</command> to the line in the
271 <filename>~/.xinitrc</filename> file that starts your graphical
272 desktop environment as shown in <xref linkend="gnome-config"/>.</para>
273 </listitem>
274 <listitem>
275 <para>If you use <command>xdm</command> or some other display manager
276 that calls the <filename>~/.xsession</filename> file, you can add
277 <command>dbus-launch</command> to the line in your
278 <filename>~/.xsession</filename> file that starts your graphical
279 desktop environment. The syntax would be similar to the example in
280 the <filename>~/.xinitrc</filename> file.</para>
281 </listitem>
282 <listitem>
283 <para>If you use <command>gdm</command> or some other display manager
284 that utilizes custom files to initiate sessions, use the example in
285 <xref linkend="gdm-config-dbus"/> of the
286 <application>GDM</application> instructions to create a file
287 containing <command>dbus-launch</command>.</para>
288 </listitem>
289 <listitem>
290 <para>The examples shown previously use
291 <command>dbus-launch</command> to specify a program to be run. This
292 has the benefit (when also using the
293 <parameter>--exit-with-session</parameter> parameter) of stopping the
294 session daemon when the specified program is stopped. You can also
295 start the session daemon in your system or personal startup scripts
296 by adding the following lines:</para>
297
298<screen><userinput><literal># Start the D-BUS session daemon
299eval `dbus-launch`
300export DBUS_SESSION_BUS_ADDRESS</literal></userinput></screen>
301
302 <para>This method will not stop the session daemon when you exit
303 your shell, therefore you should add the following line to your
304 <filename>~/.bash_logout</filename> file:</para>
305
306<screen><userinput><literal># Kill the D-BUS session daemon
307kill $DBUS_SESSION_BUS_PID</literal></userinput></screen>
308 </listitem>
309
310 <listitem>
311 <para>A hint has been written that provides ways to start scripts
312 using the KDM session manager of KDE. The concepts in this hint could
313 possibly be used with other session managers as well. The hint is
314 located at <ulink
315 url="&hints-root;/downloads/files/execute-session-scripts-using-kdm.txt"/>.
316 </para>
317 </listitem>
318
319 </itemizedlist>
320
321 </sect3>
322
323 </sect2>
324
325 <sect2 role="content">
326 <title>Contents</title>
327
328 <segmentedlist>
329 <segtitle>Installed Programs</segtitle>
330 <segtitle>Installed Library</segtitle>
331 <segtitle>Installed Directories</segtitle>
332
333 <seglistitem>
334 <seg>dbus-cleanup-sockets, dbus-daemon, dbus-daemon-launch-helper,
335 dbus-launch, dbus-monitor, dbus-send and dbus-uuidgen</seg>
336 <seg>libdbus-1.{so,a}</seg>
337 <seg>/etc/dbus-1/{session.d,system.d}, /usr/{include/dbus-1.0/dbus,
338 lib/{dbus-1.0/include/dbus,dbus/dbus-1},share/dbus-1/{services,
339 system-services}}, /var/{lib/dbus,run/dbus}</seg>
340 </seglistitem>
341 </segmentedlist>
342
343 <variablelist>
344 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
345 <?dbfo list-presentation="list"?>
346 <?dbhtml list-presentation="table"?>
347
348 <varlistentry id="dbus-cleanup-sockets">
349 <term><command>dbus-cleanup-sockets</command></term>
350 <listitem>
351 <para>is used to clean up leftover sockets in a directory.</para>
352 <indexterm zone="dbus dbus-cleanup-sockets">
353 <primary sortas="b-dbus-cleanup-sockets">dbus-cleanup-sockets</primary>
354 </indexterm>
355 </listitem>
356 </varlistentry>
357
358 <varlistentry id="dbus-daemon">
359 <term><command>dbus-daemon</command></term>
360 <listitem>
361 <para>is the <application>D-BUS</application> message bus
362 daemon.</para>
363 <indexterm zone="dbus dbus-daemon">
364 <primary sortas="b-dbus-daemon">dbus-daemon</primary>
365 </indexterm>
366 </listitem>
367 </varlistentry>
368
369 <varlistentry id="dbus-launch">
370 <term><command>dbus-launch</command></term>
371 <listitem>
372 <para>is used to start <command>dbus-daemon</command> from a shell
373 script. It would normally be called from a user's login
374 scripts.</para>
375 <indexterm zone="dbus dbus-launch">
376 <primary sortas="b-dbus-launch">dbus-launch</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="dbus-monitor">
382 <term><command>dbus-monitor</command></term>
383 <listitem>
384 <para>is used to monitor messages going through a
385 <application>D-BUS</application> message bus.</para>
386 <indexterm zone="dbus dbus-monitor">
387 <primary sortas="b-dbus-monitor">dbus-monitor</primary>
388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 <varlistentry id="dbus-send">
393 <term><command>dbus-send</command></term>
394 <listitem>
395 <para>is used to send a message to a <application>D-BUS</application>
396 message bus.</para>
397 <indexterm zone="dbus dbus-send">
398 <primary sortas="b-dbus-send">dbus-send</primary>
399 </indexterm>
400 </listitem>
401 </varlistentry>
402
403 <varlistentry id="dbus-uuidgen">
404 <term><command>dbus-uuidgen</command></term>
405 <listitem>
406 <para>is used to generate or read a universally unique ID.</para>
407 <indexterm zone="dbus dbus-uuidgen">
408 <primary sortas="b-dbus-uuidgen">dbus-uuidgen</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="libdbus-1">
414 <term><filename class='libraryfile'>libdbus-1.{so,a}</filename></term>
415 <listitem>
416 <para>contains the API functions used by the
417 <application>D-BUS</application> message daemon.
418 <application>D-BUS</application> is first a library that provides
419 one-to-one communication between any two applications;
420 <command>dbus-daemon</command> is an application that uses this
421 library to implement a message bus daemon.</para>
422 <indexterm zone="dbus libdbus-1">
423 <primary sortas="c-libdbus-1">libdbus-1.{so,a}</primary>
424 </indexterm>
425 </listitem>
426 </varlistentry>
427
428 </variablelist>
429
430 </sect2>
431
432</sect1>
Note: See TracBrowser for help on using the repository browser.