source: general/sysutils/dbus.xml@ 265a5ac

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 265a5ac was 265a5ac, checked in by Wayne Blaszczyk <wblaszcz@…>, 12 years ago

Updated D-BUS-1.5.8.

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

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